从shell脚本传递变量到GNU screen

3

我有一个类似于以下内容的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向屏幕会话传递变量时,它实际上发送的是"$cmds"而不是$cmds中的值。是否有可能将变量也带入屏幕会话中?

1个回答

3

单引号会抑制变量替换。最后一行改为这样是否可行?

screen -S $1 -X stuff "tail -n0 -f -s 0.01 $cmds | (while true; do $tron --userconfigdir $userconfigdir --vardir $var; done) | tee -a $log"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接