質問: 簡単なシェルスクリプトを見てください。 次のようなシェルスクリプトを作成しました。 #!/bin/sh echo [$1] awk '/"0312345678"/ {print}' /test > /test1 awk '/$1/ {print}' /test > /test2 のように簡単なスクリプトです。 $ sample \"0312345678\" で実行させたら、echo では"0312345678"に出力されます。 しかし、test1にはちゃんと結果が入っていますが、test2は空のファイルです。 なぜ、結果が違うのですか? 実行時、引数を渡す方法で、test1と同じ結果を得たければ、どうすればいいのですか?
回答: 「'」で囲うと$1等の展開は行われません。展開させたいときは「"」で囲うようにします。 次のように修正すればちゃんと動作しますよ。 awk "/$1/ {print}" /test > /test2