forloopオブジェクトに対してbashコマンドを実行しようとしていますが、forloopオブジェクトを使用する代わりにファイルを見つけようとします。
例:
入力ファイルには、次の形式の行が含まれています。user:password
for item in $(cat myItems);do
USER = cat $item | cut -d ":" -f1
PASS = cat $item | cut -d ":" -f2
done
結果は$ itemファイルが見つからないことです。
私も試しました
for item in $(cat myItems);do
USER = $(cat $item | cut -d ":" -f1)
PASS = $(cat $item | cut -d ":" -f2)
done
ベストアンサー1
ファイルの各行に対していくつかのコマンドを実行する必要がある場合は、次のように書くことができます。
while IFS=: read -r user password rest_ignored; do
something with "$user" and "$password"
done < myItems
cat
var=value
は、割り当て構文の周囲にスペースを入れずにファイルをリンクするコマンドです=
。$(...)
改行でコマンド出力を分割することは可能ですが、正しく設定して$IFS
ワイルドカードを無効にした場合にのみ可能です。