2012-03-08 5 views
1

これらdays.i'mは私の好きなマニュアルの例を読んでfun.Whenためのシェルスクリプトを学ぶ:

set $(wc -l $title_file) 
    num_titles=$1 
    set $(wc -l $tracks_file) 
    num_tracks=$1 

と私はコマンド、セットは$ 1を指定することを簡単に理解しているとの値を設定$ 1からnum_titlesまで しかし、私はなぜコマンドを設定するためのオプションとして-lを使用するのか分かりません。そして、どんな男がそれを全部説明することができますか?thx

+0

この例は奇妙です。 setコマンドをスキップして次のように書くのがもっと一般的です。num_titles = $(wc -l $ title_file) –

答えて

3

を出力値を参照するには、コマンド行に トイレ-l を試すことができますまず、setは環境変数を設定します。 マンページタイプとしてset var = valueまたはset var [n] = wordを使用して、マンページタイプman setを表示します。

この場合、2番目の構文を使用して$1 = $(wc -1 $titlefile)を作成し、使用される構文のためにnum_titlesを通常の変数として$ 1に設定しています。

wcはwordcountコマンドで、ファイル内に行、文字、単語を表示します。

wc -lは、wcのマンページごとに行単位でカウントし、マンページタイプman wcを表示します。

さらに参考文献としてLinux Shell Scripting Tutorial A Beginner's handbookおよびAdvanced Bash-Scripting Guideを参照してください。

+0

になりましたthx。そして、デフォルトではいつでも、設定すると、最初の引数として新しい値が設定されますか? –

+0

設定されたマニュアルページの節に合っています '残りの 引数は位置パラメータであり、 の順番で$ 1、$ 2、....に割り当てられます。 – Appleman1234

+0

shでは、 'set'は記述された構文を使用しませんここに。 cshでは、ここで使用される構文は変数を設定しますが、環境変数は設定しません。 –

3

-lスイッチは、あなたの場合、指定ファイルの の行数を調べるには、titlesファイルの行数を数え、num_titles変数に設定します(そして、tracks_file変数で指定されたファイルの行数を数え、値を設定します)変数をnum_trackする

あなたは、単にそれが

+0

私はそれを得ました。そして、デフォルトでは、最初の引数として新しい値を設定しますか? –

+0

はい。だから** abc **を設定するなら変数$ 1は "a"、$ 2 = b、$ 3 = c –

関連する問題