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}"

관련 정보