Nowe posty

xx Dystrybucja pod HP Omen (6)
2024-03-27, 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
lamp Problem z Linux Lite po instalacji (0)
2024-03-27, 19:50:30
xx Ile pingwinów? (1)
2024-03-27, 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: Problem z find'em i if'em  (Przeczytany 2563 razy)

bopablo.g

  • Gość
Problem z find'em i if'em
« dnia: 2011-12-04, 21:37:24 »
Witam wszystkich, od niedawna tworze nowe skrypty i mam pewien problem z którym nie mogę sobie poradzić. Nie znalazłem żadnych podpowiedzi, wiec zadam pytanie tutaj.

Zatem tworze skrypt wyszukujacy pliki według zadanych kryteriów. No i problem pojawia się kiedy chcę aby były wyszukane wszystkie pliki z rozszerzeniem sh w nazwie daje *.sh, a w if [ $NAZWA ] wyrzuca błąd  
Cytat: bash
./dskr.sh: line 94: [: za dużo argumentów
Fragmenty kodu wygladaja nastepujaco

Cytuj
while [ $X_CO -ne 8 ] ; do

## MENU W ZENITY


   case $X_CO in

1)

   NAZWA_WYSZ=`zenity --title "Podaj szukana nazwe" --entry --width=200 --height=150`

   ## inne opcje wyszukiwania

7)   
      POLECENIE="find"

      if [ $SCIEZKA ] ; then
      POLECENIE="$POLECENIE $SCIEZKA"
      else
      POLECENIE="$POLECENIE ."
      fi
      
      if [ $NAZWA_WYSZ ] ; then
            POLECENIE="$POLECENIE -name $NAZWA_WYSZ"
      fi

      if [ $SIZE ] ; then
               POLECENIE=" $POLECENIE -size $SIZE"
      fi

      if [ $STATUS ] ; then
                   POLECENIE=" $POLECENIE -cmin $STATUS"
      fi

      if [ $DOSTEP ] ; then
                         POLECENIE="$POLECENIE -ctime $DOSTEP"
      fi
      
      if [ $ZAWARTOSC ] ; then
                         POLECENIE="$POLECENIE -exec grep $ZAWARTOSC {} "
      fi
      
      
      
      WYNIKI=`$POLECENIE`

         
      zenity --info --text "$WYNIKI";;
      

   esac

done
Prosze o pomoc

  • Gość
Problem z find'em i if'em
« Odpowiedź #1 dnia: 2011-12-04, 22:25:19 »
1. Może podaj cały skrypt, albo przynajmniej taki fragment, który da się wykonać bez błędów (albo pokazuje dokładnie taki komunikat błędu, jaki Ty otrzymujesz -- z dokładnością do numeru linii).
2. Piszesz, że błąd wyrzuca w " if [ $NAZWA ]" -- ale w podanym skrypcie nigdzie nie jest użyta zmienna $NAZWA.
3. Otaczaj zmienne cudzysłowami (i w ogóle poczytaj o cytowaniu w powłoce -- w man bash jest cały rozdział temu poświęcony).
4. Odłóż ten apostrof.

arctgx

  • Gość
Problem z find'em i if'em
« Odpowiedź #2 dnia: 2011-12-04, 23:31:21 »
Jeśli używasz test czyli [, spójrz też na wczorajszy wątek: http://forum.linux.pl/viewtopic.php?pid=114479#p114479