系统命令bash
我想在bashshell脚本中使用system命令。具体来说,, 如果满足awk中的某些条件(工作节点数为17),我希望 为了给我发送电子邮件,我编写了以下代码:系统命令bash,bash,awk,grep,system,Bash,Awk,Grep,System,我想在bashshell脚本中使用system命令。具体来说,, 如果满足awk中的某些条件(工作节点数为17),我希望 为了给我发送电子邮件,我编写了以下代码: showq | grep nodes | awk '{if ($3 == 17) system("mailx -s 'Everything is Ok' armando@nodes.com <<EOF Tranquiquis EOF") ; else print "some nodes are not working"
showq | grep nodes | awk '{if ($3 == 17) system("mailx -s 'Everything is Ok' armando@nodes.com <<EOF Tranquiquis EOF") ; else print "some nodes are not working"; fi }'
showq | grep节点| awk'{if($3==17)系统(“mailx-s‘一切正常’armando@nodes.com您正在对awk命令使用单引号,在它们内部,文本的单引号应该用反斜杠转义。正如其他两个答案所述,问题是您使用单引号。不幸的是,他们给出的建议解决方案(反斜杠转义单引号)不起作用。您无法通过在单引号字符串中转义单引号来获取单引号。最简单的解决方案是编写:
system("mailx -s \"Everything is Ok\" ...
系统(“mailx-s\“一切正常”。。。
我发现了这个问题,它与单引号无关。事实上,我使用的是'showq'之类的命令,但必须使用整个引号
命令的路径:crontab中的“/opt/moab/bin/showq”
谢谢。showq | grep nodes | awk'
showq | grep nodes | awk '
{
if ($3 == 17)
system("mailx -s \47Everything is Ok\47 armando@nodes.com <<eof" RS \
"Tranquiquis" RS "eof")
else print "some nodes are not working"
}
'
{
如果($3==17)
系统(“mailx-s\47一切正常\47armando@nodes.com我按照您的建议键入:系统(“mailx-s\”一切正常“armando@nodes.com试着找一份工作比值得的麻烦多(