我正在尝试创建将以某种颜色打印绑定到变量的消息的函数.消息变量作为此函数的参数传递.问题是我只获得第一个空格的文本(只有第一个消息).我的脚本看起来像这样:

#!/usr/bash

lbGREEN='\e[1;92m'
NC='\e[0m'

normalMessage="Everything fine"

echo_message() {

    echo -e  ${lbGREEN}$1${NC}

}

echo_message $normalMessage 

我的输出是:

Everything

解决方法:

对我来说,我不得不更改“#!/ bin / bash”的标题,但显然这对你来说不是问题.


在你的回声中你只用$1打印第一个单词,如果你把它改成$2你将打印第二个单词(参数),依此类推.

您可以在引号内传递名称或使用$@打印所有参数

解决方案1(使用$@):

lbGREEN='\e[1;92m'
NC='\e[0m'
normalMessage="Everything fine"
echo_message() {
    echo -e  ${lbGREEN}$@${NC}
}
echo_message $normalMessage

解决方案2(带引号):

lbGREEN='\e[1;92m'
NC='\e[0m'
normalMessage="Everything fine"
echo_message() {
    echo -e  ${lbGREEN}$1${NC}
}
echo_message "$normalMessage"

标签: shell, bash, linux, scripting

相关文章推荐

添加新评论,含*的栏目为必填