代码之家  ›  专栏  ›  技术社区  ›  flash

根据grep响应为变量赋值

  •  0
  • flash  · 技术社区  · 5 年前

    我需要检查字符串中是否有子字符串。如果存在,则为文件变量赋值;如果不存在,则为同一文件变量赋值。

    以下是我所做的尝试:

    FILE="$(hostname -f | grep ".dev." &&  echo "data.txt.pp" || echo "data.txt")"; echo $FILE
    

    但是在$FILE变量的输出中:

    hostname.corp.com data.txt.pp
    

    我看到主机名也被打印出来了。我也要 data.txt.pp data.txt . 如果主机名有 .dev. 在其中,我希望文件变量是 数据.txt.pp 否则它应该 数据.txt . 我怎么了?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Gilles Quénot    5 年前

    添加 -q :

    hostname -f | grep -q "\.dev\." && echo "data.txt.pp" || echo "data.txt"
    

    避免使用大写的变量,它们是留给系统使用的