シェルスクリプトのすべてのパラメータを繰り返します。

シェルスクリプトのすべてのパラメータを繰り返します。

私はシェルスクリプトを作成しましたが、スクリプトに引数として渡された各ファイルの行数を印刷するループを実行する方法がわかりません。出力は次のとおりです。

2 lines in hello.sh
33 lines in /var/log/syslog

ベストアンサー1

POSIXシェルを想定すると、ここでコマンドライン引数を含むforループを使用してループを実行する必要があります。"$@"

for filename in "$@"; do
    lines=$(wc -l < "$filename")
    printf '%u lines in %s\n' "$lines" "$filename"
done

すべての引用符を使用することは非常に重要です。スペースやその他の文字を含むファイル名を渡すことができます。

./my_script.sh /var/log/syslog "$HOME/My Dir with Spaces/a file with spaces.txt"

おすすめ記事