我需要检查字符串中是否有子字符串。如果存在,则为文件变量赋值;如果不存在,则为同一文件变量赋值。
以下是我所做的尝试:
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 . 我怎么了?
data.txt.pp
data.txt
.dev.
数据.txt.pp
数据.txt
添加 -q :
-q
hostname -f | grep -q "\.dev\." && echo "data.txt.pp" || echo "data.txt"
避免使用大写的变量,它们是留给系统使用的