我需要通过ssh运行一些命令到远程机器。 但在尝试执行一些基本命令时,例如:
ssh abc@remotemachine.com "a='hello'; echo $a"
在屏幕上没有输出。 然而
ssh abc@remotemachine.com "echo 'hello'"
正在使用输出
Hello
任何人都可以解释为什么会发生这种情况吗?
现在主要的问题是我需要在远程机器上执行awk / cut并将输出存储在变量中。 类似的东西:
ssh abc@remotemachine.com 'a=$(df /tmp | awk 'NR==2 {print $NF}');echo $a'
但我无法将' 置于' ' 中。
答案 0 :(得分:1)
ssh abc@remotemachine.com 'a="hello"; echo $a'
没问题
在命令中,$ a将在执行ssh之前在本地shell中解释。
另一种方式是ssh abc@remotemachine.com“a ='hello'; echo \ $ a”