使用./点斜杠运行shell脚本

15 浏览
0 Comments

使用./点斜杠运行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

0
0 Comments

在Unix/Linux中创建的文件默认没有执行权限。因此,如果想要运行一个shell脚本,需要确保脚本具有执行权限。否则,将会出现"Running shell scripts with ./ dot-slash"这个问题。

解决方法是通过以下两种方式之一来赋予脚本执行权限:

1. 将脚本作为参数传递给ksh命令来执行:

ksh yourScript

2. 使用chmod命令修改脚本的权限,赋予其执行权限:

chmod +x yourScript

通过上述方法之一,您应该能够成功运行您的shell脚本。

0
0 Comments

当我们使用"./"来运行shell脚本时,会遇到一个问题。问题的原因是我们的脚本文件不是可执行文件,因此无法直接运行。解决方法是将脚本文件设置为可执行文件,使用以下命令:

chmod +x something

这将给脚本文件添加可执行权限。然后我们可以使用"./"来运行脚本文件:

./something

这样就可以正确地运行脚本文件了。

另外,有时我们可能会遇到一些错误,比如空指针异常。这些错误通常是由Java程序引起的,而不是由shell脚本或其调用引起的。为了确定脚本是否正确运行,我们可以使用以下命令来记录脚本运行的每个命令:

ksh -x ./something

这将显示脚本运行的命令。如果错误是由脚本错误地启动JVM引起的,我们可以确定预期和实际调用之间的差异。

总结一下,当我们使用"./"来运行shell脚本时,如果出现问题,我们需要确保脚本文件具有可执行权限,并使用正确的命令来运行脚本。如果出现错误,我们可以使用"-x"选项来记录脚本运行的命令,以便确定问题所在。

0