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在shell中使用双引号来扩展变量。即使您在变量中存储了值,您所做的也会avar作为文字字符串传递。tmux attach-session由于单引号不会扩展 shell 变量,因此您需要$在变量名称前添加前缀 a 并将其用双引号引起来。

将您的脚本更改为类似的内容,

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

相关内容