我的主目录中的.bash_profile文件中有一堆别名声明,函数,PATH添加等。我还使用PBS(扭矩)调度系统。通常情况下,一切正常,我可以从bash访问我的别名。但是,当我提交作业时,我的别名没有被加载。
我想也许.bash_profile文件在作业开始运行时没有被加载,所以在我的作业脚本中我包含了一个~/.bash_profile
语句,我可以通过包含一点来确认是否正在访问该文件echo Testing!
声明,但我的别名仍无效。
以下是我的.bash_profile示例:
alias tester='echo this is a test'
echo File was accessed!
以下是我的作业脚本commands.sub:
的示例tester
但是,我总是得到这个输出:
tester: command not found
File was accessed!
任何人都可以请我提供一些建议吗?谢谢!
答案 0 :(得分:3)
别名旨在用于交互式使用,默认情况下,别名扩展不会发生在非交互式shell中。你可以添加
shopt -s expand_aliases
到任何要使用任何已定义别名的脚本的开头。
但是,我不建议这样做。由于别名可以扩展为任何,因此将命令定义限制为脚本内定义或显式源文件更安全。