我配置了詹金斯的工作,來源,來源bash腳本另一它增加了一個別名到其用戶的.bashrc
和源.bashrc
本身 bash腳本,然後原來的腳本嘗試使用該別名(由第二個設置)。但是,似乎無法找到它剛創建的別名。除了使用「通過SSH發送文件或執行命令」構建步驟來源腳本之外,我沒有使用任何腳本插件。詹金斯不能訪問外殼別名
作業做到這一點:
source ./test_script.sh
test_script.sh
看起來是這樣的:
echo "In test_script.sh"
echo $USER
echo $HOME
source ./setup_env.sh
echo "\nBack in test_script.sh"
alias foo
foo
最後,setup_env.sh
看起來是這樣的:
echo "\nIn setup_env.sh"
echo "alias foo=\"echo foobar\"" >> $HOME/.bashrc
source $HOME/.bashrc 2>/dev/null
cat $HOME/.bashrc
我從詹金斯接收輸出工作看起來像這樣:
In test_script.sh
my_user
/home/my_user
\nIn setup_env.sh
...all of my bashrc...
alias foo="echo foo"
\nBack in test_script.sh
alias foo='echo foo'
./test_script.sh: line 7: foo: command not found
我不明白爲什麼會發生這種情況,我可以在命令行自己高興地運行它並觀察它是否成功。爲什麼不能使用新的別名,當它明顯地發現它(如alias foo
命令的輸出所示)?
見(http://unix.stackexchange.com/a/1498/43764) – Armali