用多个命令替换 shell 脚本命令

  • 本文关键字:命令 shell 脚本 替换 shell
  • 更新时间 :
  • 英文 :


我正在开发一个shell脚本,其中我有变量RUN作为命令替换的结果。

像这样:

RUN="$(kubectl logs ${POD_LISTENER} | grep ${FROM_DATE})"
OUTPUT=$(eval $RUN)

问题出在 grep 部分。

我使用 grep 搜索的模式是一个日期,所以我需要在变量${FROM_DATE}周围添加单引号以完全匹配我需要的。

从终端,我运行以下命令并获得我需要的结果

kubectl logs cortex-listener-prod-6b8884d45b-mlmzz | grep '2018-08-11'

它运行良好,但我无法让它从脚本中运行。

我不明白为什么你需要引用你的FROM_DATE,因为这个字符串只包含数字和连字符,并且在 POSIX shell 中都没有被视为文件名字符。但是,您的外部双引号没有意义。只需使用

RUN=$(kubectl logs $POD_LISTENER | grep $FROM_DATE)

最新更新