linux - 根据 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
. 我在做什么错?
解决方案
添加-q
:
hostname -f | grep -q "\.dev\." && echo "data.txt.pp" || echo "data.txt"
避免使用大写变量,它们保留给系统使用
推荐阅读
- javascript - ReactDOM.render 渲染页面
- web-scraping - 为什么 YouTube 在浏览器中返回的结果与原始 HTTP 请求不同?
- c++ - C++20:多种类型的概念及其约束,正确的语法?
- x86 - intel i7-8705G使用什么指令集?
- sql-server - 通过 VB6 和 ADO 插入多个参数
- python - 在 Scikit Learn 中使用带有自定义转换器的管道
- javascript - 如何将编辑功能添加到数据表上的编辑按钮
- sql - 在 SQL 中计算两年之间的人口差异?
- css - 如何丢弃特定标签内的全局选择器规则?
- scripting - 检查数组 Google 表格脚本中是否存在该值?