当我们想知道 ssh 的标准输出是什么时,我们就这样做
ssh $linux_server "cat /proc/uptime"
[[ $? -eq 0 ]] && ssh is ok
但是在以下情况下如何知道 ssh 标准输出?
UPTIME=` ssh $linux_server "cat /proc/uptime" `
答案1
对于大多数 shell(因此也是最可移植的)执行此操作的标准方法是使用反引号 (`),并且由于您必须 ssh 的 arg 不需要引号,但结果可能是您会写:
UPTIME="`ssh $linux_server cat /proc/uptime`"
或者您可以通过使用 $() 来特定于 bash (以及其他一些 shell,但不像反引号那么通用):
UPTIME="$(ssh $linux_server cat /proc/uptime$)"
请注意,由于反引号使用相同的东西来分隔命令,因此它们不能嵌套。这是 bash 结构的优点之一。它也不需要分叉子 shell 来稍微提高执行效率。
阅读 bash 手册页以获取更多详细信息。