Bash:Bashスクリプトに変数があります。

Bash:Bashスクリプトに変数があります。

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コマンドをラップし、スペースを削除して目的の変数に割り当てる必要があります。$( )=

関連情報