Running shell command that has nested quotes via ssh

泪湿孤枕 提交于 2019-11-27 15:51:01

A quoted heredoc allows you to omit the outer quotes:

ssh user@host <<'END'
df | grep /dev/ | awk 'BEGIN{print "DISK", "%USAGE", "STATUS"} {split($5, a, "%"); var="GREEN"; print $1, $5, var}' | column -t
END

This is the case where here document comes handy:

ssh -t -t user@host<<'EOF'
df | awk 'BEGIN{print "DISK", "%USAGE", "STATUS"} /dev/{split($5, a, "%"); var="GREEN"; print $1, $5, var}' | column -t
EOF

It's much simpler to just run df | grep remotely, and process the output locally with awk:

ssh user@host 'df | grep /dev' | awk '
    BEGIN{print "DISK", "%USAGE", "STATUS"}
    {split($5, a, "%"); var="GREEN"; print $1, $5, var}' | column -t
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!