cat "$1" > /tmp/file.$$ 2>/tmp/file0.$$
grep "*" /tmp/file.$$ >/tmp/file0.$$
私が理解したようにcat
、コマンドでエラーが発生した場合はエラーがに表示されfile0.$$
、そうでない場合は内容がに表示されますfile.$$
。私が理解していないのは、真実が何であるかです$1
。
また、コマンドで何が起こりますかgrep
?
答え1
「$1」はスクリプトの最初のパラメータです。
bash your_script argument_1 argument_2 ...
これは$1
値と同じですargument_1
。引数の実際の値を得るために二重引用符で囲むのが最善です(引数に特殊文字がある場合、シェルは解釈をスキップします)。
答え2
猫
最初のコマンドは、ファイルの出力と思われるものを"$1"
2つのファイルにダンプします。 STDOUTの出力はに行き/tmp/file.$$
、STDERRの出力はに行きます/tmp/file0.$$
。尾は$$
スクリプトが実行されたときのプロセスIDです。
は、このスクリプトに渡された"$1"
コマンドライン引数()ですarg1
。たとえば、次のようになります。
$ script arg1 arg2
grep
*
この行は、ファイル内のアスタリスク( "")を含むすべての行を/tmp/file.$$
見つけます/tmp/file0.$$
。