该代码的第四行将输入参数以绿色输出到 xterm。
不过,我希望能够根据输入的值进行调节。
如果我输入单词Foo
,那么从 bash 的角度来看,变量word
不仅包含与颜色相关的字符Foo
,还Foo
包含与颜色相关的字符。因此,第一个条件返回失败。我原本以为tr
下面的命令会剥离所有颜色编码内容并仅选择单词Foo
,但它没有这样做,第二个条件也返回失败。有什么方法可以过滤掉除内容之外的所有内容$1
?
#!/bin/bash
Input=$1
word=`echo -en "\\e[38;5;41m$Input\\e[0m\\n"`
echo $word
if [[ `echo $word` = Foo ]] ; then
echo success
else
echo failure
fi
word=$(tr -cd [:lower:] <<< "$word")
if [[ `echo $word` = Foo ]] ; then
echo success
else
echo failure
fi