嵌套引用运行shell命令我有这样的shell命令:已通过ssh
ssh [email protected] "df | grep /dev/ | \
awk 'BEGIN{print "DISK", "%USAGE", "STATUS"} {split($5, a, "%"); \
var="GREEN"; print $1, $5, var}' | column -t"
我需要通过ssh运行这个,但我得到语法错误因嵌套双和单引号的存在。
我试过在引号开头和结尾之前的转义字符,但它没有解决问题。
但是,在运行这会给下面的输出本地系统:
$ df | grep /dev/ | \
awk 'BEGIN{print "DISK", "%USAGE", "STATUS"} {split($5, a, "%"); \
var="GREEN"; print $1, $5, var}' | column -t
DISK %USAGE STATUS
/dev/sda1 95% GREEN
感谢
的可能重复[如何逃脱的SSH /远程bash命令的单引号字符?(HTTP:/ /stackoverflow.com/questions/20498599/how-to-escape-the-single-quote-character-in-a-ssh-remote-bash-command) – 2015-05-14 10:39:55
请注意,唯一必须在远程服务器上运行的是'df'命令。 'grep'可以在本地运行,尽管在远程服务器上运行它会减少发回的数据量(而不是'df'产生*那么多的数据)。其余的你可以在本地执行。 – chepner