私はうまくいきますが、見苦しい機能を開発しています。変更できるものの1つは、画面名を知る機能です。 screen -dmsminecraft java ....jarを使用すると、ランダムな数字に見える画面セッションが開始されます。ホスト名。以下は、screen -lsから名前を削除して使用するvoodooです。それから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"
}