首页 > 解决方案 > 根据 grep 响应为变量赋值

问题描述

我需要检查字符串中的子字符串。如果存在,则为 FILE 变量分配一些值,如果不存在,则为相同的 FILE 变量分配一些其他值。

以下是我尝试过的:

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.,那么我希望 FILE 变量为data.txt.pp否则它应该有data.txt. 我在做什么错?

标签: linuxgrepvariable-assignment

解决方案


添加-q

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

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


推荐阅读