• ベストアンサー

prコマンドについて

prを使ってダブルカラムでプリントする入力フィルタのシェルスクリプトなんですが、 #!/bin/sh -f   ※1 if [ $1 = '-c' ] ; then shift fi if pr -2 -h "'date'($5@$7)" $2 $1  ※2 then exit 0 else exit 2 fi ※1の-fというオプションの意味と、 ※2の"'date'($5@$7)" $2 $1がよくわかりません。 $はパラメータの列番号かと思いますが、それがどのように利用されているのか、@の意味が何なのか、教えていただけないでしょうか。

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

  • ベストアンサー
回答No.1

※1の-fというオプションの意味 この「#!」のことを専門的には「shebang」といいますが、#!/bin/sh に -f は不要です。 cshのshebangは #!/bin/csh -f と書くので、csh-->shへ移植したときに消し忘れたものと思います。 ※2の"'date'($5@$7)" $2 $1 -h の後の文字列はヘッダーなので、ヘッダーとして日時とユーザーを付加しようとしたと推測されます。 つまり $5 はユーザー名 $7 はマシン名 だと思われます。 -2 が付いているので2列印字を試みてますので、$2か$1のどちらかはページ幅の指定で、どちらかが印字対象のファイル名です。 -2のオプションで印字する場合、ページ幅を指定しないと無駄に紙を消費する場合があるので必須です。 if [ $1 = '-c' ] ; then とあるので $1 がprの別のオプションかもしれません。 とすると$2が印字するファイル名かな。 prはコマンドラインからも実行できるので、実行してみるとよく分かるかと思います。

msndance
質問者

お礼

「ユーザ名@マシン名」と表記されるわけですね。 わかりました。ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A