我正试图部署我的应用程序在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家的位置PATH也打印正确。
在执行setAppPath.sh
文件之后,我试着echo $ ANT_HOME给了空行。
请帮我弄清楚这个问题。
编辑1: which ant
给ant
我使用sh setAppPath.sh命令来执行sh文件。
当你正常的运行你的脚本时,会发生什么是你的shell启动一个新的进程,脚本运行在这个进程中,当脚本完成时,进程就会死亡,并控制返回到你的shell。
脚本对其环境所做的所有修改都会随之死亡。 这些更改对父shell没有影响。 同样,如果你想在脚本中运行cd
,并期望父shell移动。
要在shell的上下文中运行脚本,而不是在子进程中运行脚本,请使用source
或.
命令:
source setAppPath.sh . setAppPath.sh