我有一个如下所示的 linux shell 脚本:
tron="/home/duke/aa/bin/armagetronad-dedicated"
var="/home/duke/aa/servers/$1/var/"
log="${var}logs/all_console_logs.log"
userconfigdir="${var}customize/config/"
parser="${var}customize/parser-rpg.php"
ladderlog="${var}ladderlog.txt"
cmds="${var}cmd.txt"
screen -S $1 -X kill
screen -d -m -S $1
screen -S $1 -X stuff 'tail -n0 -f -s 0.01 $cmds | (while true; do $tron --userconfigdir $userconfigdir --vardir $var; done) | tee -a $log
'
但是,当使用 stuff
将变量传递给 screen session 时,它实际上发送的是“$cmds”而不是 $cmds 中的值。是否也可以将变量带入 screen session ?
最佳答案
单引号禁止变量替换。这会代替最后一行吗?
screen -S $1 -X stuff "tail -n0 -f -s 0.01 $cmds | (while true; do $tron --userconfigdir $userconfigdir --vardir $var; done) | tee -a $log"
关于bash - 将变量从 shell 脚本传递到 GNU screen ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6211088/