#!/bin/bash
function getComment(){
local lang=$1;
local theComment=$2;
if [$lang == "Java"] #Surprisingly, an error occurs here: prog.sh: line 6: [Java: command not found
then
echo "//"$theComment; return;
else
echo "Language not found!"; return;
fi
}
getComment "Java" "Whoo!";
exit $?
मैं एक बैश स्क्रिप्ट शाब्दिक एक स्ट्रिंग के लिए एक चर तुलना लिख रहा हूँ, और मैं [$lang == "Java"]
उपयोग कर रहा हूँ (जैसा कि ऊपर दिखाया गया है) lang
"Java"
के मूल्य की तुलना करने के लिए । हालांकि, इस तुलना निम्न त्रुटि पैदा करता है:एक बैश स्ट्रिंग शाब्दिक तुलना एक स्थानीय चर
stderr:
prog.sh: line 6: [Java: command not found
मैं भी [$lang -eq "Java"]
और ($lang -eq "Java")
का उपयोग कर की कोशिश की है, लेकिन उन बयानों या तो काम नहीं किया, और वे ठीक उसी त्रुटि का उत्पादन किया।
यह त्रुटि क्यों हो रही है, और स्थानीय चर की तुलना स्ट्रिंग अक्षर से करने का सही तरीका क्या है?
यह आपके प्रश्न के लिए प्रासंगिक नहीं है, लेकिन आपको खोल में लाइनों के अंत में अर्धविराम की आवश्यकता नहीं है। यदि आप एक पंक्ति पर एक से अधिक कमांड डालते हैं तो उन्हें केवल तभी आवश्यकता होती है। –
[bash, कमांड नहीं मिला] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/16694586/bash-command-not-found) – chepner
सबसे अच्छा डुप्लिकेट नहीं है, लेकिन उसी उत्तर के साथ स्टैक ओवरफ़्लो पर कई प्रश्न हैं : 'test' कमांड के' ['और'] 'के आस-पास की जगहें रखें। – chepner