1
我想写一个脚本,将修改和运行另一个脚本。每当我尝试使用sed替换另一个脚本中的命令行时,该命令实际上会执行而不是以字符串形式发送到另一个脚本中。以下是最低工作示例。我无法弄清楚我做错了什么。我想运行脚本1,然后运行脚本2几次。谢谢!发送一个bash命令作为一个字符串而不是执行它的另一个脚本
脚本1:
#!/bin/bash
./script2.sh
./script2.sh
./script2.sh
lineNo=3
var2=(var=$((RANDOM % 399)))
sed -i "${lineNo}s/.*/"${var2[@]}"/" script2.sh
./script2.sh
./script2.sh
./script2.sh
脚本2:
#!/bin/bash
var=$((RANDOM % 199)) #This line should be replaced with "var=$((RANDOM % 399))" but instead is getting replaced with "var=90" (or some other random number). i.e. the command is executing.
<... Do stuff with random number stored in $var...>
问题不在于RANDOM行没有执行,问题是它正在执行。我希望它作为一个字符串进入而不是被执行。也许我没有说清楚 – shutch