linux 为什么命令替换在示例2中有效,而在示例1中无效?

z3yyvxxp  于 2022-12-11  发布在  Linux
关注(0)|答案(1)|浏览(118)

示例1:从BASH终端(不工作):

$(date | sed -r 's/[ ]{2,}/ /gi')

示例2:从BASH shell脚本(有效):

ECHO_DATE=$(date | sed -r 's/[ ]{2,}/ /gi')
oxcyiej7

oxcyiej71#

在第一个示例中,您运行$()中的求值结果。现在,该结果以Mon开头,因此您将得到一个command not found错误。在第二个示例中,您将结果赋给一个变量。要立即查看它,您可以执行以下操作:

echo "$(date | sed -r 's/[ ]{2,}/ /gi')"

但是,您也根本不需要评估额外的步骤:

date | sed -r 's/[ ]{2,}/ /gi'

我还建议检查man date,因为date有内置的格式选项。

相关问题