Bash - ユーザー入力を受け取り、その入力を含むコマンドをtmuxに送信します。

Bash - ユーザー入力を受け取り、その入力を含むコマンドをtmuxに送信します。

私は異なるtmuxセッションで複数の専用サーバーを実行しています。ポートを変更し、すべてのtmuxセッションでコマンドを作成する必要があります。コマンドは次のとおりです。config['Port'] = 12345、12345はポートです。私は私の入力を受け取り、他のすべてのtmuxセッションに入力したコードを使用してコード全体を入力するスクリプトを作成しようとしましたが、うまくいきませんでした。セッション名はです43210

#!/bin/bash
read -p '43210: ' avar
tmux attach-session -t 43210 "config['Port'] = ${avar}"

しかし、それはうまくいかず、次のようには表示されません。

usage: attach-session [-dr] [-t target-session]

答え1

bash変数を拡張するには、シェルで二重引用符を使用します。値を変数に保存しても、実行する操作はavarリテラル文字列として渡されます。一重引用符はシェル変数を拡張しないため、変数名の前にaを付けて二重引用符で囲む必要がありtmux attach-sessionます。$

スクリプトを次のように変更します。

read -p '43210: ' avar
tmux attach-session -t 43210 "config['Port'] = ${avar}"

関連情報