我正在尝试在非交互式bash shell中使用别名。我在~/.bashrc
中定义了别名,并设置了变量BASH_ENV=~/startUpFile
。 startUpFile的内容为source ~/.bashrc
。
我执行alias
命令时,可以看到别名被识别。但是,如果我尝试使用在~/.bashrc
中定义的别名,则Bash无法识别它。它给了我未知的命令错误。
使用TCSH shell,这样做很容易,因为总是读取~/.cshrc
文件。
关于如何使用Bash shell做到这一点的任何想法?
命令shopt -s expand_aliases
将允许在非交互式shell中扩展别名。
[.bashrc
仅由交互式shell处理。
此外,除非外壳程序不是交互式的,否则别名不会扩展,除非使用expand_aliases
设置了shopt
Shell选项。当然,除非通过调用名称为sh
而不是bash
的Shell来调用POSIX模式。
经常使用别名的人经常在其配置文件的末尾提供其.bashrc
,因此即使对于非交互式shell,别名也存在。这可能不是最好的方法,但是很普遍。
像这样的事情使我相信,在21世纪,我们应该放弃shell脚本,而转而使用像Python这样的成熟语言。这是可以预测的。
您必须
我有类似的问题,最后,我发现〜/ .bashrc是我所需要的。