Nowe posty

Autor Wątek: sh - problemy z CASE  (Przeczytany 4187 razy)

snoop83

  • Gość
sh - problemy z CASE
« dnia: 2006-11-24, 13:04:28 »
Witam,
Jestem początkującym użytkownikiem Linux-a (distro: Ubuntu), chciałem sobie celem nauki zorbić przykładowy skrypt w sh, który po wybraniu np. liczby 1, uruchomi mi np. polecenie systemowe top. Zrobiłem coś takiego, ale coś nie bardzo mi chula, znaczy się skrypt się niby wykona, ale nic się nie wyświetla:

--------------------------------------
echo -n "Wybierz opcję:"
echo -n "1. top."
echo -n "2. who."
echo -n "3. ls -l"

read WYBOR

case "WYBOR" in
    1 ) echo top ;;
    2 ) echo who ;;
    3 ) echo 'ls -l' ;;
esac
--------------------------------------

Dziękuję za każdą pomoc, linki do rozwiązania powyższego problemu są mile widziane :).

[xis EDIT: zmieniłem tytuł wątku]

xis

  • Gość
sh - problemy z CASE
« Odpowiedź #1 dnia: 2006-11-24, 13:09:25 »
2006-11-24 13:04:28 snoop83 napisał:


 > case "WYBOR" in
 >     1 ) echo top ;;
 >     2 ) echo who ;;
 >     3 ) echo 'ls -l' ;;
 > esac

Jeśli nie masz błędów składni (nie mam jak przetestować, więc ufam, że jest OK), to jedyne co nasuwa się na myśl to to, że używasz echo, a wystarczy sama komenda:

 case "WYBOR" in
     1 ) top ;;
     2 ) who ;;
     3 ) ls -l ;;
 esac


Aaa i jeszcze literówka, powinno być:
 case $WYBOR in


snoop83

  • Gość
sh - problemy z CASE
« Odpowiedź #2 dnia: 2006-11-24, 13:16:25 »
> Jeśli nie masz błędów składni (nie mam jak przetestować, więc ufam, że jest OK), to jedyne co
 > nasuwa się na myśl to to, że używasz echo, a wystarczy sama komenda:
 >
 >  case "WYBOR" in
 >      1 ) top ;;
 >      2 ) who ;;
 >      3 ) ls -l ;;
 >  esac
 >
 >
 > Aaa i jeszcze literówka, powinno być:
 >  case $WYBOR in

Zgadza się niezuważyłem tego. To echo to wynik, wielokrotnych prób poprawnego uruchomienia skryptu :). Dzieki za ten znak '$' tutaj faktycznie był "pies pogrzebany".

  • Gość
sh - problemy z CASE
« Odpowiedź #3 dnia: 2006-12-03, 17:15:16 »
Proponuje, aby skrypt wygladal tak:


#!/bin/bash

wybor=""

echo "Wybierz opcje:"
echo "1 top"
echo  "2 who"
echo "3 ls -l"

read wybor

case $wybor in

   "1")top   ;;
   "2")who   ;;
   "3")ls -l;;
   *)echo "Wybierz jedna z podanych opcji ! ! !";    echo "1 top";    echo  "2 who";    echo "3 ls -l";;
esac

j.neugebauer

  • Gość
sh - problemy z CASE
« Odpowiedź #4 dnia: 2006-12-15, 23:39:27 »
2006-11-24 13:04:28 snoop83 napisał:

> Witam,
 > Jestem początkującym użytkownikiem Linux-a (distro: Ubuntu), chciałem sobie celem nauki zorbić
 > przykładowy skrypt w sh, który po wybraniu np. liczby 1, uruchomi mi np. polecenie systemowe
 > top. Zrobiłem coś takiego, ale coś nie bardzo mi chula, znaczy się skrypt się niby wykona, ale
 > nic się nie wyświetla:
 >
 > --------------------------------------
 > echo -n "Wybierz opcję:"
 > echo -n "1. top."
 > echo -n "2. who."
 > echo -n "3. ls -l"
 >
 > read WYBOR
 >
 > case "WYBOR" in
 >     1 ) echo top ;;
 >     2 ) echo who ;;
 >     3 ) echo 'ls -l' ;;
 > esac
 > --------------------------------------
 >
 > Dziękuję za każdą pomoc, linki do rozwiązania powyższego problemu są mile widziane :).
 >
 > [xis EDIT: zmieniłem tytuł wątku]