Bash 4.3では動作しますが、Bash 3.2では動作しませんか?

Bash 4.3では動作しますが、Bash 3.2では動作しませんか?

私は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区切り文字を使用したことです' '。 :)

おすすめ記事