シェルのforループを使用して2つのファイルを変更する方法

シェルのforループを使用して2つのファイルを変更する方法

forループを使用してシェルからファイルを作成したいと思います。sensor_1.nmf、、、という名前の3つのsensor_2.nmfファイルがあり、sensor_3.nmfソフトウェアを使用して上記の各ファイルに対して別の7つのPythonファイルを作成しようとしています。つまり、like、...sensor_1を使用して7つのPythonファイルを作成します。私のコードは次のとおりです。r_sensor_1.pyr_sensor_2.py

for j in 1 2 3
do
    for k in 1 2 3 4 5 6 7
        nacs2.2 -l nacs_mphs -m sensor_${j}.nmf -p r_sensor_${k}.py r_sensor_${j}_${k}
    done
done

しかし、これはうまくいきません。誰でも私を助けることができますか?ありがとうございます。

答え1

forループを繰り返す代わりに、中かっこ拡張を使用できます。

nacs2.2 -l nacs_mphs -m sensor_${1,2,3}.nmf -p \
r_sensor_${1,2,3,4,5,6,7}.py r_sensor_${1,2,3}_${1,2,3,4,5,6,7}

答え2

内部 for ループに「do」がありません。

for j in 1 2 3
do
  for k in 1 2 3 4 5 6 7
  do
     nacs2.2 -l nacs_mphs -m sensor_${j}.nmf -p r_sensor_${k}.py r_sensor_${j}_${k}
  done
done

関連情報