如何避免字符串中bash变量后面的空格?


17

我有一个颜色变量。我用它通过在字符串内部求值来为字符串设置颜色。但是,我需要在名称后添加空格(以便名称不包含文本的一部分)。有时候看起来很糟。

如何避免使用(打印)该空间?

示例(假设Red=1NC=2):

echo -e "$Red Note: blabla$NC".

输出:

1 Note: blabla2.

预期产量:

1Note: blabla2.

Answers:



4

您应该养成使用的习惯是printf:

printf '%sNote: blabla%s\n' "$Red" "$NC"

其中每个%s替换一个变量。并且-e不需要,因为printf以可移植的方式接受反斜杠值\ n,\ t等。

请记住,echo -e它不能移植到其他外壳。

其他选项:

您可以使用两个命令来连接它们的输出:

echo -ne "$Red"; echo -e "Note: blabla$NC"

您可以使用简单的字符串连接:

echo -e "$Red""Note: blabla$NC"

或者,您可以利用它{ }来避免名称文本混乱:

echo -e "${Red}Note: blabla$NC"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.