我有一个别名~/.bash_aliases
远程Ubuntu的服务器上的文件。 该文件被加载在由标准方式~/.bashrc
文件,如下所示:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
这~/.bashrc
反过来文件从加载(以标准的方式也) ~/.profile
的文件看起来像这样:
if [ "$BASH" ]; then
if [ -f ~/.bashrc ]; then
source ~/.bashrc
echo ".profile loaded .bashrc"
fi
fi
mesg n
我发现我的别名,在我布的命令不可用,例如,当我这样做是在织物脚本:
run("aliased_command")
我得到这样的输出:
run: aliased_command
out: .profile loaded .bashrc
out: /bin/bash: aliased_command: command not found
Fatal error: run() encountered an error (return code 127) while executing 'aliased_command'
现在,我设法通过登录到使用ssh服务器和运行重现这种面料之外:
~# /bin/bash -l -c aliased_command
从shell(NB /bin/bash -l -c
是面料的默认,见这里 ),我得到了相同的输出:
.profile loaded .bashrc:
/bin/bash: aliased_command: command not found
相关主题搜索的公平一点后,我某处读取别名不出口的非交互shell,然后我设法解决这个问题使用/bin/bash -l -c -i
( -i
套庆典互动模式)。
然后添加以下到我的fabfile.py:
env.shell = "/bin/bash -l -c -i"
现在,我可以在我的布命令......好了使用别名!
所以我的问题是:
是否有此解决方案的任何问题? 如果是这样,我应该怎么做?
没有任何人在他们的fabfiles运行别名有问题吗?
是否有任何明显的原因,我可能有这个问题,其他人就没有呢?
任何人都可以点我描述这个问题和决议的链接等? 而且也解释了他们是如何发现他们...:)