• ベストアンサー

シェルスクリプト 環境変数RS

シェルスクリプト 環境変数のRSの意味を教えていただけますでしょうか? また、RSの中身を変更すると、どういった違いが発生するか、実際に体感 できる、スクリプトサンプルを頂けましたら助かります。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

すみません、勘違いしてました > RSを空文字にすれば、ファイル全体を1レコードとして読み込みます。 RSを空文字にすれば、「空行までを」1レコードとして読み込みます。 と訂正します。 より詳細には、awkのマニュアルを読むことをお勧めします。日本語訳もあります。

kazuau2002
質問者

お礼

ありがとうございました。 解決しました。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

通常、awkは1行ずつ読み込んで処理をします。 この「1行」が「1レコード」にあたり、レコードの区切りは改行文字です。 変数RS を変更すると、この「レコードの区切り」を別の文字に変更できます。 RSを空文字にすれば、ファイル全体を1レコードとして読み込みます。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

確認なのですが、本当に環境変数ですか? シェルスクリプトでawkを使っていて、そのawkの変数ではないですか?

kazuau2002
質問者

補足

ありがとうございます。 AWKをつってて、AWKの変数になります。

関連するQ&A

  • 環境変数とシェル変数

    UNIXのシェルスクリプトで使用するシェル変数と環境変数とはどういった違いがあるのでしょうか?どのように使い分ける必要があるのでしょうか?また、このような使い方をすると間違いがおこりやすいといった具体的な例など教えていただければ助かります。

  • 【シェルスクリプト】 ローカル変数、グローバル変数

    シェルスクリプトのローカル変数、グローバル変数の取り扱いで迷っています。 ---------------- #!/bin/bash count=0 cat file | while read i do count=`expre $count + 1 ` done echo $count ---------------- fileの中身をcatで流して、それを一行ずつ読み込みます。 そのつど、count の値を増やしていくようにしたいのですが、最後の出力値は0となります。 cat→whileで読み込ませて処理している間はローカル変数として扱われているのでしょうか。 またそうであるならば、シェルスクリプトでグローバル変数を明示的に宣言するにはどうのようにすればいいのでしょうか。

  • シェルスクリプトについて

    とあるUNIXサーバが1台あるとします。 でそのマシン上の管理プログラムが同一マシン上にある 「シェルスクリプト(bash)」をキックするとします。 となるとそのシェルスクリプトの実行者(?)は Unixにログオンしているユーザーになるのでしょうか?。 目的としてはそのログインしているユーザーの環境変数 をシェルから参照したいのですが・・ 考え方がWindowsなもので。。すみませんが よろしくお願いします。

  • シェルスクリプトの変数について

    表題の件について質問させていただきます。 シェルスクリプト内であるプログラムを走らせて No is 2 という標準出力が得られたとします。 そのなかの2という文字を変数につめたいのですがなかなかうまくいきません。 良い方法をご存知の方ご教授よろしくお願いします。

  • bashシェルスクリプトで変数を使う

    bashシェルスクリプト内で変数を使いたいです。 Linux内の設定ファイルを参考に、 ・変数名=その内容、で設定 ・${変数名} 、で呼び出す だと判断し、以下のように使っています。 #!/bin/bash WORK=/home/aaa/ cd ${WORK} その後検索したところ、 「呼び出すには、$変数名 のように記述する」との説明を見かけ、 実際$の後に変数名を付けるだけでも認識したのですが、 { }は付けても付けなくてもよいのでしょうか。 { }が必要な場合もあるのでしょうか。

  • 環境変数って何ですか?

    自慢になりませんが、パソコンのことは何もわかりません。 こないだBorland C++とかいうのをインストールしたときに、普通の手順でインストールは済んだんですが、うまく動かず人に聞いたところ「パスが通ってないんじゃない?」といわれ、その人に「環境変数」とかいうのを変更してもらったら万事うまくいったんですが・・・。 (1)環境変数って何ですか? (2)「パスが通ってない」とはどういう意味ですか? もちろんパソコン用語辞典で調べてはみたんですが、 「OSのシェルなどに設定されている、システムの属性を記録している変数。変数の名前と意味はあらかじめ決まっているため、環境変数を読み込めばシステムの設定がある程度分かるようになっている(以下略)」 さっぱりわかりません。OSはどもかく、シェルがよくわかってません。どうか初心者向けの解説を乞う次第です。

  • シェルスクリプトのBシェル(Bourne)に出てくる、$0,$1,$2

    シェルスクリプトのBシェル(Bourne)に出てくる、$0,$1,$2...のような位置パラメタや、$?,$$,$!,$-のような特殊変数がありますが、これはPerlやRubyもあるようですが、意味や効果、やり方等は同じでしょうか。 当方はPHP,JavaScriptしか触れていませんし、PHPやJavaScriptは、そのような位置パラメタや特殊変数は見当たりませんでした…。 つまり、PerlやRubyはUNIXのコマンドから誕生したスクリプト言語ということでしょうか。 こういった位置パラメタや特殊変数はPerlやRuby以外に他の言語にもありますでしょうか。PythonとかCとかJavaとか…。 また、Bシェルを学んでいる途中ですが、シェルスクリプトの中にはbourne以外にもbashやC Shell,zsh,Perlがありますが、何故Perlが入っているのでしょうか。 Perlをやっている方は別途シェルスクリプトをやる必要はないということでしょうか。

  • シェルスクリプトの変数

    Bシェルのスクリプトで入力した情報を書き出すというスクリプトで詰まってしまったので、アドバイスをお願いできますでしょうか? #!/bin/sh # COUNTER変数のリセット COUNTER=1 # 繰り返す回数を入力 read KURIKAESHI # KURIKAESHIで入力した回数入力を受け取り、出力する while [ $COUNTER -le $KURIKAESHI ];  do # 必要な情報の入力("NYUURYOKU_{COUNTER変数の数字}"の変数に入れる)   read NYUURYOKU_$COUNTER   echo "$NYUURYOKU_$COUNTER" ←※ココ   COUNTER=`expr $COUNTER + 1` done 上記のようなスクリプトを書き、"$NYUURYOKU_$COUNTER"の値を出力したいのですが、何かよい方法はありますでしょうか? echo "$NYUURYOKU_$COUNTER" と記述しただけでは、$NYUURYOKU_と$COUNTERとバラバラになってしまいます。(当然っちゃ当然ですが・・・) 何かよい方法がありましたらご教授お願いいたします。

  • シェルスクリプトの切り替え?

    シェルには種類がありユーザーはそれを切り替えることによって好みのシェルを自由に選択することが出来る。 というのはわかりました。 が、シェルスクリプトを記述して実行する場合はどうなんでしょう。 bornシェルで記述したシェルスクリプトをcshから実行できるのでしょうか。 実行者とスクリプト記述者が同じシェル環境で操作しないといけないのかと思い質問しています。 ひょっとして意味のわからない質問かも知れませんがお願いします。

  • Windows環境でのシェルスクリプト

    Windows環境でシェルスクリプトはどのように利用されているのでしょうか?