[Rozw.]Prosty skrypt: bash + dialog

Problemy dotyczące programowania.

Moderatorzy: Moderatorzy, Administratorzy

toro1984
Użytkownik
Posty: 24
Rejestracja: 2007-10-13, 11:03
Lokalizacja: Częstochowa

[Rozw.]Prosty skrypt: bash + dialog

Post autor: toro1984 »

Witam,
mam do napisania prosty zapewne skrypt, który ma wyświetlać info o systemie: CPU, napędy cd, mysz, k. graficzna, k. sieciowa oraz zmienne środowiskowe PATH, LANG, SHELL, HOSTNAME, HOME. Nie wiem za bardzo jakich poleceń użyć do wyświetlenia info o k. graficznej, myszy oraz wyświetlenia zmiennych środowiskowych, bo resztą to chyba uname z odpowiednimi parametrami.

[ Komentarz dodany przez: Zielony: 2008-04-28, 11:12 ]
Zmień temat na sensowny.
Ostatnio zmieniony 2008-05-04, 22:39 przez toro1984, łącznie zmieniany 7 razy.
Awatar użytkownika
mina86
Moderator
Posty: 3343
Rejestracja: 2004-06-14, 21:58
Lokalizacja: Linux 5.x x86_64
Kontakt:

Re: [Rozw.]Prosty skrypt: bash + dialog

Post autor: mina86 »

Do zmeinnych środowiskowych echo, do innych rzeczy można spróbować lspci.
Zastrzegam sobie prawo nieanalizowania postów pisanych niepoprawną polszczyzną.
Post generated automatically by A.I. system code name ‘mina86’ in response to the previous one.
miszmaniac
Moderator
Posty: 1510
Rejestracja: 2006-03-19, 12:00
Lokalizacja: Gdynia
Kontakt:

Re: [Rozw.]Prosty skrypt: bash + dialog

Post autor: miszmaniac »

Przejrzyj sobie też katalog /proc/ i pliki w nim np. cpuinfo i w zależności od konfiguracji kilka innych.
Tam też znajdziesz dużo informacji.
Pamiętaj,
Jeśli Twój problem został rozwiązany dopisz [b] [Rozw.] [/b]w tytule.
Projektowanie stron WWW: [url=http://www.miszewski.net.pl]www.miszewski.net.pl[/url]
toro1984
Użytkownik
Posty: 24
Rejestracja: 2007-10-13, 11:03
Lokalizacja: Częstochowa

Re: [Rozw.]Prosty skrypt: bash + dialog

Post autor: toro1984 »

Wiem już jak wyciągnąć mniej więcej info o podzespołach. Nie wiem jednak dlaczego nie działają mi w skrypcie wywalając błędy case'y odpowiedzialne za wyświetlanie zmiennych PATH i HOSTNAME. Siedziałem nad tym kawałek czasu i błąd pewnie jest banalny ale ja go dostrzec nie mogę :] Oto kod skryptu:

Kod: Zaznacz cały

#!/bin/bash
dialog --title "Zadanie 10" \
--backtitle "Przykłady okien dialogowych" \
--menu "Wybierz opcję: " 10 40 5 \
1 "Zmienna HOME." \
2 "Zmienna PATH." \
3 "Zmienna HOSTNAME." \
4 "Zmienna LANG." \
5 "Zmienna SHELL." 2> wynik.txt 
wybor=$?
wynik=`cat wynik.txt`

case $wybor in
  0) case "$wynik" in 
     "1") dialog --title "Zadanie 10" \
         --backtitle "Przykłady okien dialogowych" \
         --infobox "Zmienna środowiskowa HOME: `echo $HOME`" 10 40 ;;
      "2") dialog --title "Zadanie 10" \   
         --backtitle "Przykłady okien dialogowych" \
         --infobox "Zmienna środowiskowa PATH: `echo $PATH`" 10 40 ;;
      "3") dialog --title "Zadanie 10" \ 
         --backtitle "Przykłady okien dialogowych" \
         --infobox "Zmienna środowiskowa HOSTNAME: `echo $HOSTNAME`" 10 40 ;;
      "4") ;;
      "5") ;;
     esac ;;
  1) echo "Wciśnięto Anuluj" ;;
  255) echo " Wciśnięto Esc" ;;
esac

rm -f wynik.txt
topdolar
Użytkownik
Posty: 389
Rejestracja: 2006-10-05, 18:35

Re: [Rozw.]Prosty skrypt: bash + dialog

Post autor: topdolar »

Ogolnie wszystko dziala, tylko przy path pojawial sie taki blad:

Kod: Zaznacz cały

Error: Unknown option  .
Use --help to list options.


321: line 19: --backtitle: command not found
a to:

Kod: Zaznacz cały

#!/bin/bash
dialog --title "Zadanie 10" \
--backtitle "Przykłady okien dialogowych" \
--menu "Wybierz opcję: " 10 40 5 \
1 "Zmienna HOME." \
2 "Zmienna PATH." \
3 "Zmienna HOSTNAME." \
4 "Zmienna LANG." \
5 "Zmienna SHELL." 2> wynik.txt
wybor=$?
wynik=`cat wynik.txt`

case $wybor in
  0) case "$wynik" in
     "1") dialog --title "Zadanie 10" \
         --backtitle "Przykłady okien dialogowych" \
         --infobox "Zmienna środowiskowa HOME: `echo $HOME`" 10 40 ;;
      "2") dialog --title "Zadanie 10" \
         --backtitle "Przykłady okien dialogowych" \
         --infobox "Zmienna środowiskowa PATH: `echo $PATH`" 10 40 ;;
      "3") dialog --title "Zadanie 10" \
         --backtitle "Przykłady okien dialogowych" \
         --infobox "Zmienna środowiskowa HOSTNAME: `echo $HOSTNAME`" 10 40 ;;
      "4") ;;
      "5") ;;
     esac ;;
  1) echo "Wciśnięto Anuluj" ;;
  255) echo " Wciśnięto Esc" ;;
esac

rm -f wynik.txt
dziala tak jak powinno :) moze byl jakis bialy znak nie wiem... ale dziala poprawnie, przekopiowalem HOME do PATH, zmienilem $HOME na $PATH i dziala :P

EDIT:

ok juz wiem

Kod: Zaznacz cały

"2") dialog --title "Zadanie 10" \    
za backslashem jest ze 4 spacje i to sie gryzie :) zaznacz sobie od 2 do konca lini :D
Ostatnio zmieniony 2008-04-28, 04:40 przez topdolar, łącznie zmieniany 1 raz.
Awatar użytkownika
mina86
Moderator
Posty: 3343
Rejestracja: 2004-06-14, 21:58
Lokalizacja: Linux 5.x x86_64
Kontakt:

Re: [Rozw.]Prosty skrypt: bash + dialog

Post autor: mina86 »

Gdy używasz zmiennej środowiskowej bezpośrednio to nie `echo $ZMIENNA` tylko po protstu $ZMIENNA.
Zastrzegam sobie prawo nieanalizowania postów pisanych niepoprawną polszczyzną.
Post generated automatically by A.I. system code name ‘mina86’ in response to the previous one.
toro1984
Użytkownik
Posty: 24
Rejestracja: 2007-10-13, 11:03
Lokalizacja: Częstochowa

Re: [Rozw.]Prosty skrypt: bash + dialog

Post autor: toro1984 »

topdolar - miałeś rację hehe jak dla mnie paranoja :] No cóż nauczka na przyszłość. A co do zmiennych środowiskowych to działają dwa sposoby. Kolejne pytanko odnośnie polecenia lscpi, nie jest ono dostępne dla zwykłego usera. Pytanie moje brzmi, czy istnieje możliwość w skrypcie zapytanie o hasło roota i dopiero po jego wpisaniu użycia komendy lspci?

[ Komentarz dodany przez: Zielony: 2008-04-28, 19:07 ]
"[Rozw.]"!

Ponieważ jeszcze nie zastosowałeś się do regulaminu, przypomnianego moim poleceniem, dostajesz ostrzeżenie.
Ostatnio zmieniony 2008-04-28, 17:18 przez toro1984, łącznie zmieniany 1 raz.
Awatar użytkownika
mina86
Moderator
Posty: 3343
Rejestracja: 2004-06-14, 21:58
Lokalizacja: Linux 5.x x86_64
Kontakt:

Re: [Rozw.]Prosty skrypt: bash + dialog

Post autor: mina86 »

toro1984 pisze:A co do zmiennych środowiskowych to działają dwa sposoby.
A czy ja twierdziłem, że nie działają? Tyle, że jeden (ten, który zastosowałeś) jest niepoprawny, a drugi (ten, który podałem) jest poprawny.
toro1984 pisze:Pytanie moje brzmi, czy istnieje możliwość w skrypcie zapytanie o hasło roota i dopiero po jego wpisaniu użycia komendy lspci?
Zależy jaki chcesz osiągnąć efekt. Prawdopodobnie su -c lspci powinno wystarczyć.
Zastrzegam sobie prawo nieanalizowania postów pisanych niepoprawną polszczyzną.
Post generated automatically by A.I. system code name ‘mina86’ in response to the previous one.
toro1984
Użytkownik
Posty: 24
Rejestracja: 2007-10-13, 11:03
Lokalizacja: Częstochowa

Re: [Rozw.]Prosty skrypt: bash + dialog

Post autor: toro1984 »

Masz rację wystarczy napisać su -c. Da się jakoś wyciągnąc info o poszczególnych podzespołach dla zwykłego usera, nie roota?
ODPOWIEDZ