Mam skrypt powłoki w następujący sposób (zaczerpnięty z niektórych slajdów wykładów):
#/bin/sh
echo -e "enter a number:c"
read number
if [$number -ne 2]
then
echo "Number is not equals to 2"
fi
I dostaję błąd składniowy gdzie fi
jest. Masz pojęcie, czym jest problem?
Ponadto, co robi extra
termin w echo -e "enter a number:c"
oznacza (oprócz prostego faktu, że prosi o numer)?
EDYTOWAĆ: teraz zrobiłem
#/bin/sh
echo -e "enter a number:c"
read number
if [ "$number" -ne 2 ]
then
echo "Number is not equals to 2"
fi
I nadal otrzymuję błąd ...
To samo dotyczy
#/bin/sh
read -p "enter a number: " number
if [ "$number" -ne 2 ]
then
echo "Number is not equals to 2"
fi
</ strike>
ROZWIĄZANY: Zrobiłem tam błąd kopiowania. Dzięki za wkład, tak przy okazji, chłopaki.
Odpowiedzi:
2 dla odpowiedzi № 1Problem polega na tym, jeśli warunek:
if [$number -ne 2]
Musisz wstawić spację [
a wcześniej ]
więc użyj:
if [ "$number" -ne 2 ]
Twój skrypt może zostać przepisany jako:
#/bin/sh
read -p "enter a number: " number
if [ "$number" -ne 2 ]
then
echo "Number is not equals to 2"
fi
Jeśli jednak bash jest dostępny, lepiej przełączyć się na bash zamiast starej powłoki Bourne'a.