首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何移除空间

如何移除空间
EN

Stack Overflow用户
提问于 2022-02-04 03:25:14
回答 1查看 52关注 0票数 1

第一命令

代码语言:javascript
复制
RELAY_MASTER_LOG_FILE=$(mysql -uroot -p1234 -e 'show slave status \G'| grep 'Relay_Master_Log_File' |cut -d: -f2|tr -d " ")
代码语言:javascript
复制
echo $RELAY_MASTER_LOG_FILE

结果

代码语言:javascript
复制
node-bin.000002

(变量值之前没有空格)

但是当我试图执行这个命令时

代码语言:javascript
复制
SET_REPLICATION_PARAMS="MASTER_LOG_FILE='$RELAY_MASTER_LOG_FILE'"

我得到了这个结果

代码语言:javascript
复制
MASTER_LOG_FILE=' node-bin.000002'

变量值之前有一个空格。

EN

回答 1

Stack Overflow用户

发布于 2022-02-04 06:40:10

echo $var首先扩展变量var,然后输出结果单词,用空格分隔,然后是换行符。因此,如果存在前尾空格,echo会吃掉它们,因为它们位于第一个/最后一个单词之前/之后。如果要保留空格,请双引号变量展开,以生成一个单词,包括空格:

代码语言:javascript
复制
$ a=' node-bin.000002`
$ echo $a
node-bin.000002
$ echo "$a"
 node-bin.000002

如果要从变量值中移除前导空间,请使用模式替换:a="${a# }"。示例:

代码语言:javascript
复制
$ a=' node-bin.000002`
$ b="MASTER_LOG_FILE='$a'"
$ echo "$b"
MASTER_LOG_FILE=' node-bin.000002'
$ a="${a# }"
$ b="MASTER_LOG_FILE='$a'"
$ echo "$b"
MASTER_LOG_FILE='node-bin.000002'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70981095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档