我正在尝试读取配置文件,然后将配置的“部分”放入 bash 脚本中的数组中,然后运行命令,然后再次重复配置,并继续执行此操作,直到配置文件的末尾。
这是一个示例配置文件:
PORT="5000"
USER="nobody"
PATH="1"
OPTIONS=""
PORT="5001"
USER="nobody"
PATH="1"
OPTIONS=""
PORT="5002"
USER="nobody"
PATH="1"
OPTIONS=""
我希望 bash 脚本读取第一个“部分”,将其带入脚本中,然后运行以下命令:
scriptname -p $PORT -u $USER -P $PATH -o $OPTIONS
但是,我希望它根据配置文件中有多少个“部分”,获取“部分”的每次迭代,并使用相应的配置设置运行命令并将其应用到最终命令。因此,如果从上面读取配置文件,输出将是:
scriptname -p $PORT -u $USER -P $PATH -o $OPTIONS
scriptname -p $PORT -u $USER -P $PATH -o $OPTIONS
scriptname -p $PORT -u $USER -P $PATH -o $OPTIONS
这又看起来像:
scriptname -p 5000 -u nobody -P 1 -o ""
scriptname -p 5001 -u nobody -P 1 -o ""
scriptname -p 5002 -u nobody -P 1 -o ""
提前致谢。
#!/bin/bash
if [[ $# -ne 1 ]]; then
echo "Usage: $0 script.cfg" >&2
exit 1
fi
function runscript() {
scriptname -p $PORT -u $USER -P $PATH -o $OPTIONS
}
while read LINE; do
if [[ -n $LINE ]]; then
declare "$LINE"
else
runscript
fi
done < "$1"
runscript
如果您想同时在后台运行脚本,请尝试以下操作:
function runscript() {
nohup scriptname -p $PORT -u $USER -P $PATH -o $OPTIONS &> /dev/null &
}
The &
最后让它们在后台运行nohup
确保 shell 退出时它们不会被杀死。最终效果是将脚本转变为守护进程,这样无论父脚本发生什么情况,它们都会在后台连续运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)