nis*_*sah 44 bash alias non-interactive
我试图在非交互式bash shell中使用别名.我已经定义了我的别名~/.bashrc,我已经设置了变量BASH_ENV=~/startUpFile.startUpFile的内容是source ~/.bashrc.
当我执行alias命令时,我可以看到我的别名被识别.但是,如果我尝试使用定义的别名~/.bashrc,Bash无法识别它.它给了我未知的命令错误.
使用TCSH shell可以很容易地执行此操作,因为~/.cshrc始终会读取文件.
有什么想法我怎么能用Bash shell做到这一点?
Jim*_*wis 46
该命令shopt -s expand_aliases将允许在非交互式shell中进行别名扩展.
Mic*_*lon 15
.bashrc 仅由交互式shell处理.
此外,除非使用expand_aliasesshell设置shell ,否则当shell不是交互式时,别名不会展开shopt.当然,除非通过使用名称sh而不是调用shell来调用POSIX模式bash.
使用别名的人经常.bashrc在他们的个人资料的末尾来源他们,以便即使对于非交互式的shell也会有别名.这可能不是最好的方式,但它很常见.
这样的事情让我相信,在21世纪,我们应该放弃shell脚本,转而使用像Python这样的成熟语言.它更具可预测性.
| 归档时间: | 
 | 
| 查看次数: | 17885 次 | 
| 最近记录: |