Unix单行脚本嵌套date命令调用sar不生效如何解决?
问题解决方法
你编写的命令无法运行的核心原因是date命令的时间格式字符串前遗漏了强制要求的+前缀,修正后即可正常运行。
正确可直接运行的命令
推荐使用更易读的$()做命令替换:
sar -u -s $(date -d '60 minute ago' "+%H:%M:%S") -e 11:10:59 | grep Average: | awk '{printf($8)}'
如果坚持使用反引号写法,修正版如下:
sar -u -s `date -d '60 minute ago' "+%H:%M:%S"` -e 11:10:59 | grep Average: | awk '{printf($8)}'
额外适配说明
如果你运行命令的环境是BSD系Unix(比如macOS),系统默认date命令语法和GNU date不同,对应调整date部分即可:
sar -u -s $(date -v-60M "+%H:%M:%S") -e 11:10:59 | grep Average: | awk '{printf($8)}'
内容的提问来源于stack exchange,提问作者RU Ahmed
相关产品推荐
相关产品推荐

