带引号的 tmux 脚本
tmux script with quotes
我在 bash 中使用的 tmux 脚本具有以下代码:
tmux send-keys -t d4 'tmux send-keys -t "server1 tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered "Two keywords" | /root/another_app" ENTER' ENTER
当行传递给tmux时,"Two keywords"
在Twokeywords
中转换。
我试过转义引号但无济于事。
同样的情况也发生在一条更复杂的线路上,即:
tmux send-keys -t d4 'tmux send-keys -t server2 "tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"' | /root/another_app" ENTER' ENTER
转义引号也不走运。
我的 objective 是将第一行发送到 tmux 为:
tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered "Two keywords"
第二行为
tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"'
请试试这个:
tmux send-keys -t d4 'tmux send-keys -t "server1 tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered '"'Two keywords'"' | /root/another_app" ENTER' ENTER
因为:
echo 'tmux send-keys -t "server1 tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered '"'Two keywords'"' | /root/another_app" ENTER'
tmux send-keys -t "server1 tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered 'Two keywords' | /root/another_app" ENTER
确定最后有两个 ENTER 吗?
对于第二个,您可以使用此处文档将您的特殊 tmux 参数分配给一个变量,然后使用该变量调用您的 tmux:
var=$(cat <<SETVAR
'tmux send-keys -t server2 "tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"' | /root/another_app" ENTER'
SETVAR
)
echo "$var"
'tmux send-keys -t server2 "tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"' | /root/another_app" ENTER'
那就试试吧
var=$(cat <<SETVAR
'tmux send-keys -t server2 "tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"' | /root/another_app" ENTER'
SETVAR
)
tmux send-keys -t d4 "$var" ENTER
我在 bash 中使用的 tmux 脚本具有以下代码:
tmux send-keys -t d4 'tmux send-keys -t "server1 tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered "Two keywords" | /root/another_app" ENTER' ENTER
当行传递给tmux时,"Two keywords"
在Twokeywords
中转换。
我试过转义引号但无济于事。
同样的情况也发生在一条更复杂的线路上,即:
tmux send-keys -t d4 'tmux send-keys -t server2 "tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"' | /root/another_app" ENTER' ENTER
转义引号也不走运。
我的 objective 是将第一行发送到 tmux 为:
tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered "Two keywords"
第二行为
tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"'
请试试这个:
tmux send-keys -t d4 'tmux send-keys -t "server1 tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered '"'Two keywords'"' | /root/another_app" ENTER' ENTER
因为:
echo 'tmux send-keys -t "server1 tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered '"'Two keywords'"' | /root/another_app" ENTER'
tmux send-keys -t "server1 tail -F /var/log/file.log | grep --line-buffered keyword | egrep --line-buffered 'Two keywords' | /root/another_app" ENTER
确定最后有两个 ENTER 吗?
对于第二个,您可以使用此处文档将您的特殊 tmux 参数分配给一个变量,然后使用该变量调用您的 tmux:
var=$(cat <<SETVAR
'tmux send-keys -t server2 "tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"' | /root/another_app" ENTER'
SETVAR
)
echo "$var"
'tmux send-keys -t server2 "tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"' | /root/another_app" ENTER'
那就试试吧
var=$(cat <<SETVAR
'tmux send-keys -t server2 "tail -F /var/log/file2.json | grep --line-buffered -a '"event_type":"keyword"' | /root/another_app" ENTER'
SETVAR
)
tmux send-keys -t d4 "$var" ENTER