私は bash スクリプトの初心者で、次のスクリプトに問題があります。
stdin から与えられたすべての引数を処理したい。次に、これらの引数が通常のテキスト ファイルであるかどうかを確認します。はいの場合、それらを配列に格納し、後で配列全体を処理したいと考えています。しかし、エラーが発生しています: files+=("$@")の行で単語 unexpexted を このfiles=("$@") のように書こうとしました が、次の行で次のエラーが発生します: "( " 予想外 ("fi" を期待)
アドバイスをいただければ幸いです。前もって感謝します。
for file in "${argv[@]}"; do
if [ -d "$file" ]
then
echo "Error: '"$file"' is directory!" > /dev/stderr
continue
fi
if [[! -f "$file"] || [! -r "$file"]]
then
echo "Error: '"$file"'!" > /dev/stderr
continue
fi
file "$file" | grep text >& /dev/null
if [ ! $status ]
then
files+=("$@")
else
echo "Error: '"$file"' not a text file!" > /dev/stderr
fi
done
for file in "${files[@]}"; do
# .....
done