このスクリプト(と呼ばれる)をどのように実行しますかcount.sh
?
awk 'BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }'
実行しようとしてsh count.sh
エラーが発生します。
答え1
私のスクリプトに対して私がしたことは次のとおりです。
#!/usr/bin/awk -f
BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }
このアプローチの唯一の欠点は、Awkへのパスがハードコーディングされていることです。これは、スクリプトがNFSを介してエクスポートされ、NFSクライアントが別のディレクトリ(..など)にAwkをインストールした場合に/bin/awk
中断さ/usr/bin/awk
れます。
実行権限を設定すると、スクリプトを実行するためにシェルを使用せずにスクリプトを直接呼び出すことができます(慣例によってはスクリプトに含まれないため、.sh拡張子を省略することもできます)。
$ chmod +x count
$ ./count
1
2
3
4
5
答え2
あなたのスクリプトを実行しましたが、エラーは発生しませんでした(予想したものとは異なり:)。
$ cat test.awk
awk 'BEGIN{ x=0 ; while (x < 5) { x+=1 ; print x ; } }'
$ bash test.awk
1
2
3
4
5
どのようなエラーが発生しましたか?私はawkが処理する入力ファイルを要求すると予想しました。 :)