我在不同的 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}"