bash - 将变量从 shell 脚本传递到 GNU screen

标签 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 将变量传递给 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/

相关文章:

c++ - 为什么这个命令失败? rm 和 g++ 命令?

linux - screen 终止后执行命令

linux - 如何在 Linux "screen"程序中使用 vim 的制表符?

bash - 分离模式下的启动 screen 没有源环境

linux - 在 VI/Linux 中替换反斜杠加管道

Bash 交换文件中具有不同 UUID 的字符串

Bash 脚本在读取循环中未捕获 SIGINT

linux - Linux find 命令如何与 exec 一起使用

linux - 如何将命令输出存储在一个变量中而不是一行?

bash - jenkins job 默认可以获取哪些文件?