スクリプトにファイル名を渡すにはどうすればよいでしょうか?
特定のファイルを処理するスクリプトは、実行内容の記録として役立ちます。しかし、任意のファイルを処理できるスクリプトのほうが、さらに便利です。
これを実現するには、特殊な表現である $@(ドル記号の直後にアットマークを続けたもの)を使います。これは「スクリプトに渡されたすべてのコマンドラインパラメータ」を意味します。
例えば、unique-lines.sh に sort $@ | uniq と書かれている場合、次のように実行すると:
bash unique-lines.sh seasonal/summer.csv
シェルは $@ を seasonal/summer.csv に置き換え、1つのファイルを処理します。次のように実行すると:
bash unique-lines.sh seasonal/summer.csv seasonal/autumn.csv
2つのデータファイルを処理します。ファイルの数が増えても同様です。
念のため、Nano で書いた内容を保存するには、Ctrl + O を押してファイルを書き出し、Enter キーでファイル名を確定してから、Ctrl + X でエディタを終了してください。
この演習はコースの一部です
