Linux 通过竹子调用的Shell脚本被卡住,无限期地等待

Linux 通过竹子调用的Shell脚本被卡住,无限期地等待,linux,bash,sh,bamboo,Linux,Bash,Sh,Bamboo,我试图为我们的构建自动化任务配置竹子,这涉及到执行一个ANT项目。 但初始环境设置是必需的,所以我们有一个脚本名“devsh”,它设置了所有内容,并在执行脚本后默认切换到其他目录 #!/bin/bash ............ .......... ..--some 200 line code... export PATH export MANPATH export LD_LIBRARY_PATH export CLASSPATH export JAVA_HOME export WORKING

我试图为我们的构建自动化任务配置竹子,这涉及到执行一个ANT项目。 但初始环境设置是必需的,所以我们有一个脚本名“devsh”,它设置了所有内容,并在执行脚本后默认切换到其他目录

#!/bin/bash
............
..........
..--some 200 line code...
export PATH
export MANPATH
export LD_LIBRARY_PATH
export CLASSPATH
export JAVA_HOME
export WORKING_COPY
export BUILD_DIR
export APP_DIR
export ANT_HOME
export ANT_OPTS

# If a shell command was specified then run it, else just exec the shell.
if [ "$EXEC_STRING" ]; then
    eval "exec $EXEC_STRING"
fi

case "$UNAME" in
    CYGWIN*)
# Set a default prompt of: user@host and current_directory
PS1='\[\033]0;\w\007
\033[0;33m\]\u@\h \[\033[1;35m\w\033[0m\]
$ '
export PS1
    ;;
    *)
    ;;
esac

#This is a workaround for config where exported PATH is ignored, and recreated everytime a shell starts - ag
export FORCE_PATH="$PATH"
export FORCE_ANTHOME="$ANT_HOME"

exec $SHELL
现在,当我试图通过bambol调用这个脚本时,它正在等待一些退出代码(我认为是因为exec$SHELL语句)。虽然相同的脚本在本地环境中工作。谁能帮我一下吗


提前感谢。

您能将变量EXEC_STRING和SHELL的内容放入debug吗?否则,在脚本的开头添加
set-xv
(x表示debug,v表示verbose)(或-xv表示shebang,如果执行)您所说的“在本地环境中工作”是什么意思?通过给用户一个新的交互式shell,它看起来“起作用”。如果您通过其他进程调用它,我希望该进程等待被调用的shell退出。您希望
exec$shell
完成什么,如果它停止并等待您的输入,您为什么感到惊讶?早期的
eval
hack肯定会触发警告;看见