Daugiau
Kaip palyginti du eilutės kintamuosius 'if' teiginyje "Bash"?
Bandau gauti if
teiginį, kad jis veiktų Bash (naudojant Ubuntu):
#!/bin/bash
s1="hi"
s2="hi"
if ["$s1" == "$s2"]
then
echo match
fi
Išbandžiau įvairias if
teiginio formas, naudodamas [["$s1" == "$s2"]]
, su kabutėmis ir be jų, naudodamas =
, ==
ir -eq
, bet vis tiek gaunu tokią klaidą:
[hi: komanda nerasta
Peržiūrėjau įvairias svetaines ir vadovėlius, nukopijavau juos, bet tai neveikia - ką darau ne taip?
Galiausiai noriu pasakyti, ar $s1
yra $s2
, tad kaip tai padaryti?
Ką tik išsprendžiau tarpų dalį :/ Kaip pasakyti, kad yra?
Bandžiau
if [[ "$s1" == "*$s2*" ]]
bet tai neveikė.
568
3
Jums reikia tarpų:
Siūlyčiau:
Be dvigubų kabučių ir tik su vienu lygybės ženklu.
Dabar neturiu prieigos prie linux dėžutės, bet [ iš tikrųjų yra programa (ir bash programa), todėl manau, kad tarp [ ir pirmojo parametro reikia dėti tarpą.
Taip pat atkreipkite dėmesį, kad eilutės lygybės operatorius, atrodo, yra vienas =