将变量从shell脚本传递到GNU屏幕

时间:2011-06-02 06:10:05

标签: bash shell gnu-screen

我有一个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 个答案:

答案 0 :(得分: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"