使用./点斜杠运行shell脚本
使用./点斜杠运行shell脚本
我正在处理一个文件处理项目,尝试在PuTTY中运行一个名为runProcessing.sh的shell脚本。服务器使用ksh。我的主管告诉我在执行脚本时使用./ runProcessing.sh
,但每当我使用./时,要么显示无法执行
,要么显示文件不存在
。每当我只输入runProcessing.sh
时,它返回空指针异常,我一直在根据这些异常继续我的任务。 \n我理解在运行脚本时./的作用,但不确定为什么在尝试使用它运行我的脚本时不起作用。有什么建议或意见吗?我对Linux/UNIX是新手。 \n这是我的脚本: \n
#!/bin/ksh # # 从适当的目标下载处理文件的脚本 # # $Id: runProcessing.sh 604 2013-01-14 21:56:35Z alex_rempel $ # DIR=`dirname $0` . $DIR/setEnvironment.sh java $LDAPRUNMODE $JAVAOPT com.webproject.db.processing.FPJob --logdir $CISLOGDIR --file [2] $* RET=$? if [ $RET -gt 0 ] then echo echo echo "------ runProcessing.sh执行失败 ------" echo echo exit $RET
当我们使用"./"来运行shell脚本时,会遇到一个问题。问题的原因是我们的脚本文件不是可执行文件,因此无法直接运行。解决方法是将脚本文件设置为可执行文件,使用以下命令:
chmod +x something
这将给脚本文件添加可执行权限。然后我们可以使用"./"来运行脚本文件:
./something
这样就可以正确地运行脚本文件了。
另外,有时我们可能会遇到一些错误,比如空指针异常。这些错误通常是由Java程序引起的,而不是由shell脚本或其调用引起的。为了确定脚本是否正确运行,我们可以使用以下命令来记录脚本运行的每个命令:
ksh -x ./something
这将显示脚本运行的命令。如果错误是由脚本错误地启动JVM引起的,我们可以确定预期和实际调用之间的差异。
总结一下,当我们使用"./"来运行shell脚本时,如果出现问题,我们需要确保脚本文件具有可执行权限,并使用正确的命令来运行脚本。如果出现错误,我们可以使用"-x"选项来记录脚本运行的命令,以便确定问题所在。