2013-07-24 77 views
1

後否認當我運行命令Linux的錯誤消息:權限給所有的權限

./load_test_triples.sh TMODEL/Map.ttl TMODEL Y >> load_semantic.log

我得到以下信息:

./load_test_triples.sh: line 72: =: Permission denied 

它不喜歡我的劇本什麼的,因爲如果我從第54行開始取出代碼,那麼它工作得很好:

12 MODEL=$2 
13 REPLACE=$3 
. 
. 
54 get_count() { 
55  sqlplus -s user/pass <<! 
56  set heading off 
57  set feedback off 
58  set pages 0 
59  select PRNCT_CHANGE 
60  FROM COUNT_STATISTICS 
61  WHERE model = '$MODEL' 
62  AND NEW_DATE = (SELECT MAX(NEW_DATE) 
63      FROM COUNT_STATISTICS 
64      WHERE MODEL = '$MODEL'); 
65 ! 
66 } 
67 
68 count=$(get_count $1) 
69 
70 echo $count #echoes right number 
71 
72 if [ $count >= 0 ]; then 
73  echo "is greater than or equal zero" 
74 else 
75  echo "is less to zero" 
76 fi 

任何人都知道可能是什麼問題?

+0

的問題是,你想在shell腳本應該怎樣正確地在實際的編程語言來完成做。 Shell腳本是危險的;很容易讓人覺得它是一種強大而富有表現力的語言,然後你開始嘗試做任何事情,接下來的事情就是你知道你在膝蓋處咬傷你的腿。 –

回答

3

test命令中,>=被解釋爲輸出重定向到名爲=的文件。沒有>=運營商的外殼,但是你想使用運營商-ge整數比較反正:

if [ "${count:-0}" -ge 0 ]; then 
+0

如果我改變,我得到:./load_test_triples.sh:第72行:[:-ge:一元運算符預期 – Angelina

+0

如果我添加雙引號變量數我得到:./load_test_triples.sh:第72行:[:整數表達式預計 – Angelina

+0

這聽起來像'count'設置爲空字符串。修復'get_count'會很好,但我可以提供解決方法。我的答案假設空字符串應該被視爲0. – chepner