繁体   English   中英

如何在同一行中在远程服务器上打印两个命令?

[英]How can I print two commands on remote server in the same line?

当我尝试在控制台中打印此命令的输出时ssh 192.168.1.120 'df -h | grep sda2; hostname;' ssh 192.168.1.120 'df -h | grep sda2; hostname;' 我明白了

/dev/sda2        23G  8.0G   14G  38% /
localhost

虽然我想看这个

/dev/sda2        23G  8.0G   14G  38% / localhost

虽然我可以用以下方式在同一行打印这些

result=`ssh 192.168.1.120 'df -h | grep sda2; hostname;'`
echo $result

这不是我想要的,因为这种方式不会保留字符之间的实际空格。

有没有办法让它工作?

通常 ppl 只是使用这样一个事实,即命令替换会删除尾随的换行符。

ssh 192.168.1.120 'echo $(df -h | grep sda2) $(hostname)'

在您的情况下,您也可以对其进行后处理。

ssh ... | paste -sd' '
ssh ... | tr -d '\n'

从一个命令中删除换行符:

ssh ... 'df -h | grep sda2 | tr -d "\\n" ; hostname'

更喜欢$(...)不是反引号 `。 使用 shellcheck 检查您的脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM