我正在尝试在Linux机器中部署我的应用程序,我有一个名为setAppPath.sh文件的文件:
#!/bin/sh
APP_HOME=`pwd`
ANT_HOME=$APP_HOME/lib/ant
echo $ANT_HOME
PATH=$ANT_HOME/bin:$APP_HOME/scripts/unix:$PATH
echo $PATH
chmod +x $ANT_HOME/bin/ant
chmod +x $APP_HOME/scripts/unix/*.sh
export APP_HOME ANT_HOME PATH
当我尝试执行ant
命令时,收到错误消息:
-bash: ant: command not found
echo $ANT_HOME
正在打印我的ant home位置,PATH也正确打印。
在感染setAppPath.sh
文件后,我尝试回显$ ANT_HOME,它给出了空行。
请帮我弄清楚这个问题。
编辑1: which ant
不提供蚂蚁
我使用sh setAppPath.sh命令来执行sh文件。
答案 0 :(得分:1)
当你正常运行你的脚本时,会发生什么是你的shell启动一个新进程,脚本在该进程中运行,当脚本完成时,进程终止并且控制返回到你的shell。
脚本对其环境所做的所有修改都会随之消失。这些更改对父shell没有影响。如果您尝试在脚本中运行cd
并期望父shell移动,则相同。
要在shell的上下文中而不是在子进程中运行脚本,请使用source
或.
命令:
source setAppPath.sh
. setAppPath.sh