Bash / shell代码在变量列表文件上运行命令

时间:2017-03-02 17:38:32

标签: bash list shell repeat

所以对于初学者我有以下主流程正在运行

for fname in (filename); do  
  ./$comma "$fname" (var1) (var2)  
  mv "$fname" "${fname}.fin"  
done  

然后我有一个名字的列表文件,如:

filename|var1|var2   
file1|9|1  
file2|8|3  
等等......

希望将其设置在哪里 - 当主脚本运行./$comma脚本时,它从列表文件中读取并填充fname,var1和var2(每个管道顺序) - 现在我有很多如上所述的重复大块的脚本,并希望巩固或清理它肯定。任何帮助是值得赞赏的 - 不一定必须是for; do循环 - 只要脚本在右侧args上运行并重命名。

1 个答案:

答案 0 :(得分:2)

您显示的for循环在语法上不正确。但是,您希望while循环使用read命令。

while IFS="|" read -r fname var1 var2; do
  ./"$comma" "$fname" "$var1" "$var2"
  mv "$fname" "$fname.fin"
done < filenames.txt