ファイル名にスペースがあるファイルリストの処理

ファイル名にスペースがあるファイルリストの処理

スペース名を含むことができるファイルのリストを処理するbashスクリプトを開発しようとしています。

(私は相談してみました。ファイル名にスペースが含まれるスクリプトの問題そしてBashスクリプトでスペースをエスケープできないのはなぜですか?しかし、私のスクリプトを完璧にすることはできないようです。 )

これは私のスクリプトです。実際のプロセスはより複雑なので、fileここでは単純なコマンドで単純化しました。

#!/bin/bash

if [ $# -eq 0 ]; then
   echo "Usage is $0 <files to be tested>"
   exit
fi

allfilestobetesed=$@
for filetobetested in "$allfilestobetested"
do
    file "$filetobetested"
done

スクリプトをどのように改善できますか?

ベストアンサー1

allfilestobetested可能であれば、変数を削除する必要があります。

for filetobetested in "$@"; do
    file "$filetobetested"
done

正しく拡張されます

おすすめ記事