从bash脚本运行grep时会失去着色



我写了一个简单的bash脚本,因为我重复使用了一个具有相同参数的grep命令。我正在从~/bin运行它,它运行得很好。

我的问题是:当它在我的bash脚本中运行时,所有的着色都消失了。完全相同的命令放在命令行很好的颜色代码行号,文件名,等等

这是我的bash脚本

#!/bin/bash
# grep php files inside of myfolder, recursively and with line numbers
grep -rn --include="*.php" "$2" /home/me/myfolder/$1

您可能已经在.bashrc中将grep定义为grep --color=auto的别名,但这不是由脚本加载的。在脚本中使用明确的grep --color

运行脚本时,会生成一个新的shell来执行此操作。此新环境的设置与默认shell不同。至于如何恢复着色,我不确定。你可以尝试在脚本开始时获取你的个人资料:

#!/bin/bash
source $HOME/.bash_profile

或者任何对您的特定unix风格有意义的文件(.profile、.bash_rc、.bashrc.bash_profile)等等。

最新更新