Strona 1 z 1

[Rozw.]Prosty skrypt: bash + dialog

: 2008-04-24, 00:25
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.

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

: 2008-04-24, 07:10
autor: mina86
Do zmeinnych środowiskowych echo, do innych rzeczy można spróbować lspci.

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

: 2008-04-24, 07:55
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.

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

: 2008-04-28, 01:22
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

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

: 2008-04-28, 04:38
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

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

: 2008-04-28, 07:50
autor: mina86
Gdy używasz zmiennej środowiskowej bezpośrednio to nie `echo $ZMIENNA` tylko po protstu $ZMIENNA.

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

: 2008-04-28, 17:09
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.

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

: 2008-04-28, 17:21
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ć.

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

: 2008-04-28, 20:38
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?