猛砸/ shell代码对变量
问题描述:
列表文件中运行命令,因此对于初学者,我有以下几点,主要工艺进出口运行猛砸/ shell代码对变量
for fname in (filename); do
./$comma "$fname" (var1) (var2)
mv "$fname" "${fname}.fin"
done
的话,我有名字的listfile中看起来像:
filename|var1|var2
file1|9|1
file2|8|3
etc ...
想要将它设置在哪里 - 当主脚本运行./$comma脚本时,它从列表文件中读取并填充fname,var1和var2(按管道顺序) - 现在我有一个很多像上面这样重复的脚本块,并且想巩固或清理它。任何帮助表示赞赏 - 并不一定必须是for; do循环 - 只要脚本在正确的文件上运行并具有正确的参数并被重命名。
答
您显示的for
循环在语法上不正确。你想要一个while
循环,但是,它使用read
命令。
while IFS="|" read -r fname var1 var2; do
./"$comma" "$fname" "$var1" "$var2"
mv "$fname" "$fname.fin"
done < filenames.txt
[不读线,供](http://mywiki.wooledge.org/DontReadLinesWithFor) –
感谢您此链接 - 绝对有用的前进! – Jazzkatt