bash - 如何使用 bash/sed 循环数字并延迟启动多个程序
问题描述
我想通过 bash/sed 完成以下任务:
#1。设置 i = 1 和 j = 34
#2。使用 sed 修改我的脚本 (myscript.txt) 使用步骤 #1 中的 i 和 j 的值
#3。运行一个使用 myscript.txt 的程序
#4。再次使用 sed 将 myscript.txt 更改为其原始值
#5。等待 5 秒
#6。将 i 和 j 增加 34 并重复步骤 #2、#3、#4 和 #5。
到目前为止,我得到的是代码只启动程序一次。有什么建议么?
j = 1
for i in {1..1021..34}; do
echo "Number: $i"
j=$(($i+33))
echo "Number: $j"
cd "/path_to_my_script/"
sed -i "s/local min = 123456789/local min = ${i}/g" myscript.txt &&
sed -i "s/local max = 123456789/local max = ${j}/g" myscript.txt &&
run program using myscript.txt && sleep 5s &&
sed -i "s/local min = ${i}/local min = 123456789/g" myscript.txt &&
sed -i "s/local max = ${j}/local max = 123456789/g" myscript.txt
done
解决方案
基于 StackOverflow 社区提供的大力帮助,我已经能够解决问题。最终脚本可以表示为:
cd "/path_to_my_script/"
j = 1
for i in {1..1021..34}; do
echo "Number: $i"
j=$(($i+33))
echo "Number: $j"
sed -e "s/local min = 123456789/local min = ${i}/g" original_script.txt > script_to_run.txt
sed -i "s/local max = 123456789/local max = ${j}/g" script_to_run.txt
run program using script_to_run.txt & sleep 5s
done
问题的根源:我正在使用几天前过期的程序的试用版。要使用它,我必须使用 faketime。购买完整版后,无需使用 faketime,代码运行良好。此外,代码已经更改,因为我想要 Bodo 如下所述:“在后台启动程序,无需等待,同时休眠 5 秒”
推荐阅读
- android - 无法启动 Gauge Intellij 插件
- c++ - 错误:无法将 'double (*)[(order + -1)]' 转换为 'double (*)[100]
- javascript - 将自定义 ajax 按钮添加到 WooCommerce 管理员订单列表
- c - 在 printf 中打印八进制文字
- javascript - 如何以角度在所有打开的选项卡中呈现更新的数据
- python - Big Sur 更新后修复 Anaconda Python
- c - 为什么我不能让球跳起来?它像火箭一样飞起来
- mysql - 将表重命名为自身的新版本时如何减少(或消除)mysql“表不存在”错误
- fedora - Fedora 33 上的 Gnome Box 无法打开
- angular - 错误类型错误:无法在 TenantsDetailsComponent_Template 读取未定义的属性“street1”