複数のコマンドをforループに変換する

複数のコマンドをforループに変換する

端末に何度もコマンドを再入力するのは面倒です。

デフォルトでは、図の例のように、ogg_2x2またはogg_1x1に対してのみこのコマンドを実行する必要はありませんが、すべてのiに対してこのコマンドを実行する必要があります。データセット(上記セルの出力)

私が思いついたのはこれですが、iと$をどのように使用するのかわからないので、混乱させたと確信しています。

datasets=("input" "the" "elements" "of" "datasets" "from" "the" "notebook")
for i in "${datasets[@]}"; do
  ls *$i*mpin>$i.txt
  multipht list=$i.txt x=2 y=3 mag=4 err=5 jd=1 auto outfile=multipht_$i.out
  solvepht infile=multipht_$i.out outfile=$i.out varstar=0
done

データセット内のすべてのiに対して実行する必要があるコマンド

ベストアンサー1

以下を試してください

for i in "input" "the" "elements" "of" "datasets" "from" "the" "notebook"
do
  ls *${i}*mpin>${i}.txt
  multipht list=${i}.txt x=2 y=3 mag=4 err=5 jd=1 auto outfile=multipht_${i}.out
  solvepht infile=multipht_${i}.out outfile=${i}.out varstar=0
done

おすすめ記事