prosty skrypt bash pro

Potrzebujesz pomocy z C, C++, perl, python, itp.
biolkell
Beginner
Posty: 110
Rejestracja: 06 sierpnia 2013, 21:34

prosty skrypt bash prośba o pomoc

Post autor: biolkell »

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
Awatar użytkownika
f1.micro
Beginner
Posty: 119
Rejestracja: 24 lutego 2009, 11:32
Lokalizacja: Kraków

Post autor: f1.micro »

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 »

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'
Awatar użytkownika
LordRuthwen
Moderator
Posty: 2341
Rejestracja: 18 września 2009, 21:45
Lokalizacja: klikash?

Post autor: LordRuthwen »

Ja bym to jednakże robił na case zamiast if. Przy większej ilości zapytań jest zauważalnie szybszy i bardziej przejrzysty.
ODPOWIEDZ