Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have this following shell command:

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

I need to run this over ssh but I get syntax error due to the presence of nested double and single quotes.

I tried the escape characters for before the beginning and ending of the quotes but it did not solve the problem.

However, on local system running this will give the following output:

$ 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
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
698 views
Welcome To Ask or Share your Answers For Others

1 Answer

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...