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