我正在研究一个可以工作但很丑陋的功能。可以改变的一件事是能够知道屏幕的名称。使用 screen -dms minecraft java ….jar 现在启动一个屏幕会话,其名称似乎是随机数..主机名。接下来是巫毒,它恰好从 screen -ls 中删除名称并使用它。然后是awk。一定有更好的方法。
say_this()
{
REEN="$(ssh -p 8989 192.168.1.101 screen -ls)"
echo $REEN > log/log.txt
AWK="$(awk 'FNR == 1 { print $6 }' log/log.txt)"
NAME="$(echo $AWK)"
echo $1
ssh -p 8989 192.168.1.101 screen -S $NAME -p 0 -X stuff \"$1^M\"
}
say_this "say test"
say_this "say !@#$%^&*()<>?This string should work!"
答案1
您不必要地使用了大量变量和日志文件。
我不确定之后的内容stuff
,但我打赌它可以更简单:
say_this()
{
local name="$(ssh -p 8989 192.168.1.101 screen -ls | awk 'NR==2 {print $1}')"
echo "$1"
ssh -p 8989 192.168.1.101 screen -S "$name" -p 0 -X stuff "$1"
}