send-keys
tmuxを使いたいリモートサーバーにログインすると、一連のコマンドを実行します。
リンクされた回答では、単一のコマンドが使用されます。私はそれらを一連に配置できることを知っていましたが、それらのうちの2つ以上を正常に実行したことはありません。それらの間に一時停止を導入することは可能ですか(リモートホストが応答する前にtmuxがそのうちの1つを実行することが問題であると仮定するため)。
このコマンドはログインしているユーザーに変更を適用します。これはこれまで問題ではありませんが、実行中のサーバーにスクリプトを配置できない理由の1つです。 (tmuxはユーザーを変更しても構いませんが、スクリプトはそうすることはできず、実行を続けます。)
それでは、2つ以上のコマンドをどのように取得できますか?
関係があるかどうか疑問ですが、zshをローカルで実行し、サーバーでbashを実行しています。
答え1
私も質問を完全に理解していませんが、予想される役に立つかもしれません。インタラクティブセッションに入力を送信し、応答を解析して、ログイン、コマンドの完了などを待つ手動遅延を排除できます。
答え2
tmuxコマンドの間に「スリープ」するだけです...
tmux send-keys -t 1 "echo -n hello " Enter
sleep 5
tmux send-keys -t 1 "echo world" Enter
しかし、一般的に待つ理由は、続行する前に何が起こるべきかということです。固定間隔に依存するのは良いエンジニアリングではありません。expect
@FazJaxtonが提案したように、正しいスクリプトを使用する方が安全です。