繁体   English   中英

在bash脚本中,如何将文本文件中包含的值提供给程序执行的开关?

[英]In a bash script, how do I provide values contained in a text file to the switch of a program execution?

我想在Linux中编写一个bash脚本,它多次执行一个程序(例如,3次),并根据文本文件中提供的值列表指定一个switch值。

例如,假设有一些程序programname具有开关-switch ,需要一个浮点数作为输入。 因此,该程序的一次执行可能是:

programname -switch 0.05

其中0.05是传递给开关-switch的特定值。

现在,我想读在某种有,我想传球,连续值的列表的文本文件,以-switch在单独的呼叫programname 我的文本文件test.txt可能包含以下数据:

0.05
3.19
100.75

我想写一个bash脚本,它将在文本文件中读取并有效地连续进行这些调用:

programname -switch 0.05
programname -switch 3.19
programname -switch 100.75

我在考虑这样的事情:

#!/bin/bash
for i in {1..3}
do
programname -switch $x
done

但是,我应该用什么代替$x 换句话说,我不知道如何在test.txt读取并在for循环运行时将其内容逐个提供给-switch 你有什么建议吗? 谢谢!

无需使用任何外部实用程序。 计数器增量和read可以如图所示一起完成,或者计数器增量可以在循环内的任何位置移动。

while ((i++)); read -r value
do
    programname -switch "$value" -other "$i"
done < test.txt

values.txt:

0.05
3.19
100.75

script.sh:

#!/bin/bash

counter=1
for value in $(cat values.txt)
do
    programname -switch $value -counter $counter
    counter=$(expr $counter + 1)
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM