根据 grep 响应为变量赋值
assign a value to a variable basis on grep response
我需要检查字符串中的子字符串。如果存在则将一些值分配给 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
。我做错了什么?
添加-q
:
hostname -f | grep -q "\.dev\." && echo "data.txt.pp" || echo "data.txt"
避免使用大写变量,它们保留供系统使用
我需要检查字符串中的子字符串。如果存在则将一些值分配给 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
。我做错了什么?
添加-q
:
hostname -f | grep -q "\.dev\." && echo "data.txt.pp" || echo "data.txt"
避免使用大写变量,它们保留供系统使用