私はstatを使用していますが、何らかの理由で最新バージョンのbashを実行しているサーバーの1つでは動作しますが、以前のバージョンでは動作しません。もちろん、これらのエラーは非常に一般的ですが、次のコードブロックで発生します。
while IFS='' read -r line || [[ -n $line ]]; do
IFS=' ' read size file <<< $line
containsElement "$(stat -c %U $file)" "${users[@]}"
if [ $(echo $?) == "1" ] ; then
rm -f $DU_SAVE-$(stat -c %U $file)_du.txt
users+=("$(stat -c %U $file)")
fi
echo $line >> $DU_SAVE-$(stat -c %U "$file")_du.txt
done < "${DU_SAVE}_du.txt"
プログラムの使用はそれほど重要ではありませんが、以前にファイルに保存されたDUコマンドからユーザー情報を取得し、リストに追加します。問題は次のとおりです。
stat: オペランドがありません。 Try
stat --help' for more information. stat: cannot stat
': そのファイルやディレクトリはありません。
すべてのファイルに。
編集:読み取りコマンドが統計を混乱させていることがわかりました。同じコードが最新のbashバージョンでも完全に実行され、おそらく私の表現が間違っている可能性があります。
答え1
もちろん、解決策を見つけるのに少し時間がかかり、ここに尋ねることにしました。
解決策は、私の変数分割コマンドがこのバージョンのbashで動作したくなかったので、cut
区切り文字を使用したことです' '
。 :)