从函数中获取值,使用该值在 shell 中获取彩色输出
Getting value from function, use that value to get colored output in shell
(使用 zsh)每当我在终端中打开一个新选项卡时,我只是想获得随机颜色输出。为此,我编写了以下 shell 脚本,但它没有按预期工作:
#Standard Colors
red='3[0;31m'
NC='3[0m' # No Color
black='3[0;30m'
blue='3[0;34m'
green='3[0;32m'
cyan='3[0;36m'
purple='3[0;35m'
yellow='3[1;33m'
lgreen='3[1;32m'
lblue='3[1;34m'
lred='3[1;31m'
lcyan='3[1;36m'
#Array color
colr=(red blue green cyan purple yellow lgreen lblue lred lcyan)
#Get random number for colors
randcolr()
{
sz=${#colr[@]}
randval=$(( ( RANDOM % sz ) + 1 ))
echo "${colr[randval]}"
}
echo -e "$(randcolr)TESTING"
它没有得到彩色输出,而是写了颜色的名称和 "TESTING" 例如lgreenTESTING
。有帮助吗?(我正在使用 zsh)
函数randcolr
总是在终端内给出相同的值。
定义数组时,您使用的是字符串而不是变量:
colr=(red blue green cyan purple yellow lgreen lblue lred lcyan)
应该是:
colr=($red $blue $green $cyan $purple $yellow $lgreen $lblue $lred $lcyan)
(使用 zsh)每当我在终端中打开一个新选项卡时,我只是想获得随机颜色输出。为此,我编写了以下 shell 脚本,但它没有按预期工作:
#Standard Colors
red='3[0;31m'
NC='3[0m' # No Color
black='3[0;30m'
blue='3[0;34m'
green='3[0;32m'
cyan='3[0;36m'
purple='3[0;35m'
yellow='3[1;33m'
lgreen='3[1;32m'
lblue='3[1;34m'
lred='3[1;31m'
lcyan='3[1;36m'
#Array color
colr=(red blue green cyan purple yellow lgreen lblue lred lcyan)
#Get random number for colors
randcolr()
{
sz=${#colr[@]}
randval=$(( ( RANDOM % sz ) + 1 ))
echo "${colr[randval]}"
}
echo -e "$(randcolr)TESTING"
它没有得到彩色输出,而是写了颜色的名称和 "TESTING" 例如lgreenTESTING
。有帮助吗?(我正在使用 zsh)
函数randcolr
总是在终端内给出相同的值。
定义数组时,您使用的是字符串而不是变量:
colr=(red blue green cyan purple yellow lgreen lblue lred lcyan)
应该是:
colr=($red $blue $green $cyan $purple $yellow $lgreen $lblue $lred $lcyan)