2013-05-15 46 views
1

每当我尝试运行我的shell脚本时,如果测试中出现4个不同的错误,当条件测试时拒绝Shell脚本权限

script.sh 45: script.sh: : Permission denied 
script.sh 52: script.sh: : Permission denied 
script.sh 59: script.sh: : Permission denied 
script.sh 324: script.sh: : Permission denied 

我在我的脚本上做了一个chmod 777,所以每个人都有权限。该脚本的运行是这样的:

./script fileToUse 

这里是那些它给了错误信息行的样子:

if ("$VAR" == "Condition_1") 
then 
    do stuff 
elif ("$VAR" == "Condition_2") 
then 
    do stuff 
elif ("$VAR" == "Condition_3") 
then 
    do stuff 
else 
    do stuff 
fi 

和324线是这样的:

if ("$flagIsSet" -eq 0) 
then 
    do stuff 
fi 

任何想法,为什么我可能会得到这个错误信息,它是什么意思?

+0

无法重现。我猜想你的访问资源的权限被拒绝了。很难多说,只给出伪码。 – DevSolar

+0

你在运行什么外壳? – choroba

+0

@choroba#!/ bin/sh –

回答

5

括号运行一个子shell。使用括号进行比较:

if [ "$VAR1" = "Condition_1" ] ; then 
    # do stuff 
fi 
+0

我的确如你所说,而我知道得到的错误信息./script:45 [:意外的操作符代替以上每行的错误 –

+1

@nkon:OK ,使用单个'='。 – choroba

+0

作品!但为什么?我以为单个=将变量设置为一个值? –

相关问题