嵌套引用運行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