如何通过一个Bash脚本修改同目录下另一Bash脚本的变量
第一步:修改Direx.sh(带循环的主脚本)
核心修改点是将for循环的步长调整为10,同时接收Direx_Opener.sh传递的参数,避免原脚本的循环调用问题:
#!/bin/bash # 接收外部传入的START、END参数,对应位置变量$1和$2 START=$1 END=$2 # 此处保留你原来的其他脚本逻辑 # ... # for循环步长设为10,固定写法为i+=10 for (( i=$START; i<=$END; i+=10 )) do # 此处保留你原来的循环内逻辑 # ... done wait
第二步:修改Direx_Opener.sh(控制START/END的调度脚本)
修正原脚本的变量赋值语法错误、逻辑颠倒问题,自动按10为间隔生成批次区间:
#!/bin/bash # 初始化第一个批次的起止值 START=1 END=10 # 外层循环控制总批次,当前配置默认跑11个批次 for ((j=0; j<11; j++)) do # 调用Direx.sh传入当前批次的起止参数 ./Direx.sh $START $END # 生成下一批次的起止值,间隔10 START=$(($START+10)) END=$(($END+10)) done
使用说明
- 两个脚本放在同一目录后,先执行命令赋予执行权限:
chmod +x Direx.sh Direx_Opener.sh - 直接运行
./Direx_Opener.sh即可自动按批次执行,主脚本循环步长固定为10 - 如果需要调整总运行批次,修改Direx_Opener.sh外层循环的
j<11参数即可,比如要跑20批次就改为j<20
内容的提问来源于stack exchange,提问作者Stealth Frosch
相关产品推荐
相关产品推荐

