Potrzebujesz pomocy z C, C++, perl, python, itp.
biolkell
Beginner
Posty: 110 Rejestracja: 06 sierpnia 2013, 21:34
Post
autor: biolkell » 30 września 2014, 12:08
Mam taki proste menu do skryptu bash, nie wiem czemu nie wchodzi mi w odpowiednie warunki, co robię źle?
Kod: Zaznacz cały
#!/bin/bash
echo 'Wybierz Student[s] lub Pracownik[p]'
read kto
#if 1==2;
if [["$kto"=s]];
then
echo 'student'
elif [["$kto"=p]];
then
echo 'pracownik'
else
echo ' Zły wybór'
wynik
Kod: Zaznacz cały
Wybierz Student[s] lub Pracownik[p]
s
./skrypt.sh: line 8: [[s=s]]: nie znaleziono polecenia
./skrypt.sh: line 13: [[s=p]]: nie znaleziono polecenia
Zły wybór
w takim wygadaniu działa
read test
if [ $test = "s" ]; then
echo "student"
fi
if [ $test = "p" ]; then
echo "pracownik"
fi
f1.micro
Beginner
Posty: 119 Rejestracja: 24 lutego 2009, 11:32
Lokalizacja: Kraków
Post
autor: f1.micro » 30 września 2014, 12:14
Kod: Zaznacz cały
if [[ "$kto"=s ]];
...
elif [[ "$kto"=p ]];
Zapomniałęś o spacjach po i przed nawiasami kwadratowymi.
A swoją drogą polecam Ci użyć case
Kod: Zaznacz cały
case $kto in
p) echo "nauczyciel" ;;
s) echo "student" ;;
*) echo "cos innego" ;;
esac
biolkell
Beginner
Posty: 110 Rejestracja: 06 sierpnia 2013, 21:34
Post
autor: biolkell » 30 września 2014, 12:48
Dzięki pomogło może komuś się przyda:
Kod: Zaznacz cały
#!/bin/bash
echo 'Wybierz Student[s] lub Pracownik[p]'
read kto
if [ $kto = "s" ] ;
then
echo 'student'
echo "podaj login"
read login
useradd -d /student/$login -m $login
elif [ "$kto" = "p" ] ;
then
echo 'pracownik'
echo "podaj login"
read login
useradd -d /home/$login -m $login
else
echo ' Zły wybór'
LordRuthwen
Moderator
Posty: 2341 Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?
Post
autor: LordRuthwen » 01 października 2014, 13:31
Ja bym to jednakże robił na case zamiast if. Przy większej ilości zapytań jest zauważalnie szybszy i bardziej przejrzysty.