Strona 1 z 1
przeglądanie pliku tekstowego w BASHu
: 09 grudnia 2008, 16:57
autor: debbian
Witam, mam na zadanie: napisać skrypt w bashu, który sprawdzi zawartość pliku tekst.txt pod kątem słowa bash. Jeśli tam je znajdzie pokazuje wiadomość Sukces, jeśli nie to Klęska.
Próbowałem coś takiego ale nie wiem jak porównać wynik grep do zmiennej $2
Kod: Zaznacz cały
#!/bin/bash
cat $1 |grep $2
if [[grep == $2]]; then
echo "Sukces"
else
echo "Kleska"
fi
Wywoływanie skryptu:
Macie jakieś pomysły?
: 09 grudnia 2008, 18:31
autor: snah
Użyj odwotnych apostrofów, np.
przypisuje zmiennej zmienna wartość zwróconą przez polecenie ls.
: 09 grudnia 2008, 18:40
autor: lis6502
albo $(), troszkę lepiej wygląda jeśli operujemy na zmiennych
: 09 grudnia 2008, 19:45
autor: RaV.
Kod: Zaznacz cały
#!/bin/bash
cat $1 | grep -q bash
if [ $? -eq 0 ]; then
echo jest
else
echo nie ma
fi
Pod zmienną $? jest trzymany rezultat wykonania ostatniego polecenia. 0 == sukces (bez błędów), każda inna wartość oznacza błąd.
Kod: Zaznacz cały
rav@hydra:~$ echo Hello World.
Hello World.
rav@hydra:~$ echo $?
0
rav@hydra:~$ cat notexistingfile.txt
cat: notexistingfile.txt: Nie ma takiego pliku ani katalogu
rav@hydra:~$ echo $?
1
: 09 grudnia 2008, 19:45
autor: Utumno
skrypt masz kompletnie nieprawidlowy. Nie sprawdza w ogole co zwrocil grep, tylko sprawdza czy drugim parametrem skryptu byl string 'grep', a i to robi zle.
: 09 grudnia 2008, 20:50
autor: debbian
Kod: Zaznacz cały
#!/bin/bash
grep $1 $2
if [[$(grep) == $2]]; then
echo "Znalazlem slowo: $2"
else
echo "Nie znalazłem słowa: $2"
fi
Nie działa.
: 09 grudnia 2008, 21:01
autor: lis6502
Aleś kolego namieszał.
Polecam Ci lekturę
tego i
tego.