【发布时间】:2016-08-05 18:21:50
【问题描述】:
我似乎无法找到解决这个特殊问题的方法,因为我使用 bash 颜色代码作为变量存储在外部文件中:
- 我有一个文件,其中包含存储为变量的颜色代码集合,我希望将这些颜色代码提供给其他脚本,以便我可以在所有脚本中使用变量名称而不是颜色代码。
colorCodeFile.sh
green='\033[1;32m'
red='\033[31m'
yellow='\033[1;33m'
endColor='\033[0m'
- 我在所有其他脚本文件的开头使用 source 来使颜色变量可用。这工作正常,我得到彩色输出。
aScriptUsingColorCodes.sh
source ~/colorCodeFile.sh
echo "this is ${red}red${endColor}"
- 问题在于,出于某种原因,“调用”源的外部脚本 (aScriptUsingColorCodes.sh) 在我的 .bashrc 文件中必须有一个别名。如果我使脚本可执行并将其放在我的路径中并删除别名,则颜色变量将不再可用。
如果我在我的 .bashrc 文件中使用别名来运行脚本,我不明白为什么颜色变量可用,但如果我使脚本可执行并且只从命令行运行它而不使用别名,则颜色变量不可用。
为了清楚起见,可执行脚本在我的路径中并且它们确实运行。 colorCodeFile.sh 文件包含带有字符串和函数的变量,当我使用 source 从外部脚本调用它们时,它们都可用并且工作正常。但是对于颜色代码变量,我最终会得到颜色代码文本 ('\033[31m') 而不是彩色输出。
如果这很重要,我正在使用 MAC。
【问题讨论】: