【发布时间】:2018-11-09 17:59:59
【问题描述】:
我有一个 shell 脚本,它查找 Ceratin 格式的文件,并在 for 循环中获取部分字符串并调用命令,因为我有几个文件需要打印出来。
以下是我需要返回到sub.sh的文件
CAP_1_34.yml
SAP_34_5.yml
CAP_1_34.sh
SAP_34_5.sh
以下是我使用的脚本,
for name in `ls -1 *yml| xargs -I% echo % | cut -d'_' -f 1`
do
ls -1 *.sh |xargs -I% echo submit ajob -J "${name}" -o "${name}".job sh % >sub.sh
done
但上面的脚本只是返回 sub.sh 中最后一个文件的名称
现在sub.sh 如下所示
submit ajob -J SAP -o SAP.job sh CAP_1_34.sh
submit ajob -J SAP -o SAP.job sh SAP_34_5.sh
正如我所期望的那样,
submit ajob -J CAP -o CAP.job sh CAP_1_34.sh
submit ajob -J SAP -o SAP.job sh SAP_34_5.sh
【问题讨论】:
-
每次循环迭代都会覆盖
sub.sh,因此只有$name的最后一个值是可观察到的。