あるターミナルから別のターミナルにコマンドを送ってtmux
気づきました。
$ tmux send -t mySession "text" ENTER
正しく送信されtext
ましたが、
$ tmux send -t mySession "up" ENTER
再送信しましたtext
。それはおそらくup
テキストとして解釈されず、キーワードキーの上向き矢印として解釈されたからです。
同様に、
$ tmux send -t mySession "3" ENTER
正しく送信され3
ましたが、
$ tmux send -t mySession "-3" ENTER
tmux: unknown option -- 3
usage: send-keys [-lRM] [-t target-pane] key
このエラーメッセージで失敗し、この素朴なエスケープ試行は失敗します。
$ tmux send -t mySession "\-3" ENTER
3
予期しないことが再送信されました-3
。
とにかく、私はtmuxが引数を解釈して理解する方法について何かが欠けていると確信しています。私がここで何を見逃しているのでしょうか?
mytmuxcommand "<text>" ENTER
常に次のように解釈されるようにするにはどうすればよいですか?「実際の値を送信して<text>
ENTERキーを送信してください」?
答え1
文字列を文字通り送信するには-l
to オプションを使用できますがsend-keys
、後ろにもオプションがある可能性があるため、最初にオプションを見つけたくない場合は(empty string)などを-l
使用する必要があります。''
-
Enterのようなキー名とリテラルを混在させて一致させることはできないので、最終的には次の2つのコマンドを提供します。
tmux send-keys -t session -l '' -3 \; send-keys -t session Enter