Bashスクリプトdirs = "4";に変数があります。別のファイルからこの番号を取得したいので、dirs = sed -n '1p' <test.txt;コマンドを使用すると番号が表示されます。ターミナルで確認してください。しかし、コードでは dir. を使ってディレクトリを繰り返したいと思います。スクリプトでは dir が数値であることを理解していないため、動作しません。
d= sed -n '1p' < test.txt
for dirs in $d
do
echo "$dirs"
done
dirs= read $dirs
speeds= sed -n '2p' < test.txt
for speeds in $s
do
echo "$speeds"
done
for dir in $dirs
do
for speed in $speeds
do
echo "speed=$speed dir=$dir"
done
done
答え1
以下を使用する必要があります。speeds=$(sed -n '2p' < test.txt)
実際に起こるのは、bashがその空間を見て別のコマンドとしてspeeds=
扱うということです。sed...
したがって、speeds
空の文字列に設定されて実行されますsed
(これがスクリプトを実行すると値が印刷される理由です。値が変数に保存されるのではなく、端末に印刷されます)。サブシェルで実行され、出力を返すようにsed
コマンドをラップし、スペースを削除して目的の変数に割り当てる必要があります。$( )
=