2013-04-13 6 views
50

मुझे फ़ाइल test.sh में एक त्रुटि हो रही है ./test.sh: पंक्ति 13: [: गायब `] '। मैंने ब्रैकेट और अन्य विकल्पों जैसे कि ए या चेकिंग का उपयोग करने की कोशिश की फ़ाइल पी 1 का आकार लेकिन त्रुटि हमेशा वहां होती है और अन्य कथन हमेशा इनपुट के बावजूद निष्पादित किया जाता है। मैंने इसे हटाकर भी कोशिश की; लाइन 13 में लेकिन यह मदद नहीं की।बैश स्क्रिप्टिंग लापता ']'

test.sh

#!/bin/bash 
echo "Enter app name" 
read y 
$y & 
top -b -n 1 > topLog.log 
#-w checks for the whole word not and sub string from that word 
grep -w "$y" topLog.log > p1 
#-s option checks if the file p1 is present or not 
if [ -s "p1"]; #line 13 
then 
    echo "Successful " 
else 
    echo "Unsuccessful" 
fi 
rm p1 

मैं scripting.So पार्टी की योजना बनाई नया हूँ अगर कोई मूर्खतापूर्ण गलती है कृपया मुझे क्षमा करें।

उत्तर

130

बदलें

if [ -s "p1"]; #line 13 

से पहले एक स्थान जोड़ें।

+2

+ 1 आप लोग वास्तव में जल्दी हैं !!! – Kent

+0

एक बार मैंने आपको हराया :-) –

+0

मुझे अभी पता चला है कि ओपी की आईडी जल्दी है! : डी – Kent

5

में

if [ -s "p1" ]; #line 13 

टिप्पणी अंतरिक्ष करीब ब्रैकेट

7

आप "p1" बाद में एक रिक्ति छूट रहा है:

if [ -s "p1" ]; 
7

मैं [ ... && ... ] जैसे एक कोष्ठक के अंदर && ऑपरेटर का उपयोग करने का प्रयास करते समय यह त्रुटि हुई। मुझे [[ ... && ... ]] पर स्विच करना पड़ा।

+0

धन्यवाद, यह मेरा मुद्दा था और इसने इसे हल किया –

+1

'[...] && [...] ' –

+0

भी काम किया होगा [[]] एक bashism है, इसलिए कहीं और काम नहीं करता है। – BTRUE

संबंधित मुद्दे