使用qusb的-V选项仅导入环境变量,但不导入.bashrc中的别名。例如
### in .bashrc
alias ll='ls -ltr'
alias la='ls -A'
export PYTHONPATH=/local/python_other:$PYTHONPATH
并且qsub脚本是
#!/bin/sh
#$ -V
echo $PYTHONPATH
ls
ll
la
在这种情况下,echo $PYTHONPATH
和ls
工作正常但ll
和la
错误ll: command not found
。
那么如何在qsub中导入别名命令呢?
OR是alias
的更好替代品,以便命令(ll
或la
)的行为类似于ls
,并且可以轻松导入
答案 0 :(得分:2)
别名旨在成为命令行便利。它们不适合用于脚本编写。在大多数情况下,您应该使用函数。函数可以导出到子Bash脚本,但不太可能导出到其他环境。
也就是说,您可以尝试在qsub脚本中明确地采购~/.bashrc
。
. $HOME/.bashrc
或
source $HOME/.bashrc
我不知道qsub支持哪些内容。
答案 1 :(得分:1)
~/.bashrc
。
您必须在
#!/bin/bash -i
或者更好的是在脚本开头明确导入~/.bashrc
:
. ~/.bashrc