我似乎无法找到解决此特定问题的方法,我在外部文件中使用存储为变量的bash颜色代码:
colorCodeFile.sh
green='\033[1;32m'
red='\033[31m'
yellow='\033[1;33m'
endColor='\033[0m'
aScriptUsingColorCodes.sh
source ~/colorCodeFile.sh
echo "this is ${red}red${endColor}"
如果我在.bashrc文件中使用别名来运行脚本,但我不明白为什么颜色变量可用但是如果我使脚本可执行并且只是从命令行运行它而不是别名。
为了清楚起见,可执行脚本在我的路径中并且它们确实运行。 colorCodeFile.sh文件包含带有字符串和函数的变量,当我使用source从外部脚本调用它们时,这两个变量都可用并且工作正常。但是对于颜色代码变量,我最终得到了颜色代码文本(' \ 033 [31m']而不是彩色输出。
如果重要的话我就在MAC上。
答案 0 :(得分:0)
像这样更新colorCodeFile.sh
:
$ cat colorCodeFile.sh
green=$(echo -e '\033[1;32m')
red=$(echo -e '\033[31m')
yellow=$(echo -e '\033[1;33m')
endColor=$(echo -e '\033[0m')
或将aScriptUsingColorCodes.sh
更新为:
echo -e "this is ${red}red${endColor}"