我有这一行:
ssh server1 "df -h | sed 's/%/ /g' | awk '{ if (\$5 > 90 && !/^[a-zA-Z]/) { var1=1 }} END { if (var1 == 1) { print 1 } else { print 0 }}'"
但是,这会产生以下错误:
bash: !/^[a-zA-Z]/: event not found
我不太清楚如何逃避感叹号。有什么想法吗?
此致
大卫
答案 0 :(得分:9)
Bash即使在双引号中也会评估!
历史操作。如果你在引号内逃脱它,你就得到\!
(严重的是,wtf bash?)。您必须结束双引号,添加'!'
或\!
,然后重新打开双引号。
ssh server1 "df ... && "\!"/^[a-zA-Z]/...}}'"
对于记录,zsh正确处理双引号内的反斜杠转义("\!"
- > !
)。