变量不在ssh上存储值

时间:2018-01-09 05:13:48

标签: linux awk ssh redhat cut

我需要通过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' 

但我无法将' 置于' ' 中。

1 个答案:

答案 0 :(得分:1)

ssh abc@remotemachine.com 'a="hello"; echo $a'没问题 在命令中,$ a将在执行ssh之前在本地shell中解释。

另一种方式是ssh abc@remotemachine.com“a ='hello'; echo \ $ a”