如何逃避这个问题,以便运行 ssh exec

如何逃避这个问题,以便运行 ssh exec

我有以下有效的 bash

export READ=$(cat /opt/TOKEN.txt);echo "initial_token: $READ" >> cassandra.yaml

我需要逃避这一点,以便它正确地通过 ssh 运行,所以我尝试了以下

ssh host 'export READ=\$(cat /opt/TOKEN.txt);echo \"initial_token: \$READ\" >> cassandra.yaml'

产生错误

bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `export READ=\$(cat /opt/TOKEN.txt);echo \"initial_token: \$READ\" >> cassandra.yaml'

ssh host 'export READ=\$\(cat /opt/TOKEN.txt\);echo \"initial_token: \$READ\" >> cassandra.yaml'

产生错误

bash: line 0: export: `/opt/TOKEN.txt)': not a valid identifier

有人知道如何摆脱这种情况吗?谢谢,Dean

答案1

你转义得太多 – bash 已经不再解释单引号字符串了:

ssh host 'READ=$(< /opt/TOKEN.txt); echo "initial_token: $READ" >> cassandra.yaml'

答案2

啊,这真是太酷了。我刚刚发现这个,所以我不需要担心逃避任何事情……

ssh user@serverB <<\EOF
your sql query....
.....
.....
EOF

相关内容