【发布时间】:2017-12-13 13:29:01
【问题描述】:
我有以下命令行来检查文件系统的可用空间:
fs_used=`df -h /u01 | sed '1d' | sed '1d' | awk '{print $4}' | cut -d'%' -f1`
它工作正常。它返回文件系统上已用空间的百分比(不带 % 符号)。
现在我需要将其设为变量并使用 eval 命令运行它。我尝试了以下方法,但它不起作用(使用 df 退出:无效选项 -- 'd')
df_cmnd="df -h $fs1 | sed '1d' | sed '1d' | awk '{print $4}' | cut -d'%' -f1"
fs_used=eval $df_cmnd
我猜,问题在于 eval 无法运行管道命令。真的吗? 是否有任何解决方法或替代方法可以使此代码运行?
【问题讨论】:
-
不行,你需要把它变成一个函数,而不是一个变量。
标签: bash escaping pipe eval quoting