Linux 如何使用在下一个单词前没有空格的变量?

Linux 如何使用在下一个单词前没有空格的变量?,linux,bash,shell,Linux,Bash,Shell,我有一个简单的bash脚本,如下所示: RED=$(tput setaf 1) echo "$REDERROR - ..." 我希望它以红色打印ERROR 如果我将代码更改为: RED=$(tput setaf 1) echo "$RED ERROR - ..." 它以红色打印错误,但带有前导空格 那么,我如何消除前导空格,并在其前面引用变量$RED?使用: 字符串串联也可以工作: echo "$RED""ERROR - ..." (鉴于$RED的特定内容(没有空格或其他字段分隔符),技术

我有一个简单的bash脚本,如下所示:

RED=$(tput setaf 1)
echo "$REDERROR - ..."
我希望它以红色打印
ERROR

如果我将代码更改为:

RED=$(tput setaf 1)
echo "$RED ERROR - ..."
它以红色打印
错误
,但带有前导空格

那么,我如何消除前导空格,并在其前面引用变量
$RED

使用:

字符串串联也可以工作:

echo "$RED""ERROR - ..."
(鉴于$RED的特定内容(没有空格或其他字段分隔符),技术上不需要在$RED周围加引号,因此,
echo$RED“ERROR-…”
将给出相同的结果。)

使用:

字符串串联也可以工作:

echo "$RED""ERROR - ..."
(鉴于$RED的特定内容(没有空格或其他字段分隔符),技术上不需要在$RED周围加引号,因此,
echo$RED“ERROR-…”
将给出相同的结果。)

您可以使用:

 echo $RED"ERROR - ..."
您可以使用:

 echo $RED"ERROR - ..."

@我强烈建议新手不要使用第二个命令。你应该在了解你的方法和确定你在做什么之前引用所有的东西。另外,第一个命令的颜色编码更为优雅。@4ae1e1同意,在我了解到我真正不需要引用的地方之前,我也曾在bash中引用过防御性的命令。事实上,第二个命令以
“$RED”ERROR-…”
开头,正如您在修订版中看到的那样。这实际上更好!使用花括号的建议非常棒、简单、规范,在所有情况下都是正确的。我冒昧地跳过了连接建议,因为我强烈建议新手不要使用第二个命令,因为这只是一条令人惊叹的鲶鱼。你应该在了解你的方法和确定你在做什么之前引用所有的东西。另外,第一个命令的颜色编码更为优雅。@4ae1e1同意,在我了解到我真正不需要引用的地方之前,我也曾在bash中引用过防御性的命令。事实上,第二个命令以
“$RED”ERROR-…”
开头,正如您在修订版中看到的那样。这实际上更好!使用花括号的建议非常棒、简单、规范,在所有情况下都是正确的。我冒昧地跳过了连接建议,因为它只不过是令人敬畏的^^