将多个命令转换为 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

相关内容