beluosus pisze:Poprawiony skrypt (i przy okazji trochę estetyczniej zapisany - przynajmniej jak dla mnie

):
Kod: Zaznacz cały
#!/bin/bash
dialog --title "SKLEPIK" --inputbox "Czego szukasz?" 10 40 2> tmp.txt
odp=$?
towar=$(<tmp.txt)
case $odp in
0)
msg=$(awk -F# '$0~/'"$towar"'/ {print $1,$2}' sklep.txt)
dialog --title "Szczegoly" --msgbox "$msg" 10 30;;
1)
dialog --title "Nie szukamy?" --msgbox "Nie kupujesz nic?" 5 25;;
esac
rm -f tmp.txt
Rzeczywiscie, kod duzo ladniejszy

Tylko mi nie dzialal ... Zrobilem cos takiego:
Kod: Zaznacz cały
!/bin/sh
dialog --title "SKLEPIK" \
--inputbox "Czego szukasz?" 10 40 2>tmp.txt
odp=$?
towar=`cat tmp.txt`
case $odp in
0) dialog --title "Szczegoly" \
--msgbox "`awk -F# '$0~/'"$towar"'/ {print $1,$2}' sklep.txt`" 10 30;;
1) dialog --title "Nie szukamy?" \
--msgbox "Nie kupujesz nic?" 5 25;;
esac
rm -f tmp.txt
i teraz jest juz ok

(Przynajmniej na razie) Bo chcialbym jeszcze dodac sortowanie po wybranych prze zuzytkownika polach i zapisywanie takiego wyniku wyszukiwania do pliku
EDIT:
Lechu_ pisze:Nie lepiej będzie napisać skrypt awk/gawk niż się męczyć ze zmiennymi w bash ??
Chcialem napisac to w bashu zeby miec okienka dialogowe

To zawsze ladniej wyglada
W razie probelmow z sortowaniem pozwole sobie pisac tutaj, zeby niepotrzbnie nie zakladac nowych tematow
EDIT:
Heh, to znów ja
Wymyśliłem sobie, ze fajnie by było móc usuwać także niektóre towary ze sklepu

W tym celu chcialem uzyc dodatkowo sed'a ale cos nie bardzo mi to wychodzi - niby pomysl jakis mam, ale to chyba nie to. Chcialem, aby to co wpisze uzytkownik zostalo usuniete ze sklepu. Ponizszy skrypt jest nie za bardzo jesli chodzi o kod - ale z dialogiem sobie poradze najwazniejsze jest dla mnie, ze mi nie dziala usuwanie z pliku
Kod: Zaznacz cały
#!/bin/bash
echo "Co usunąć?"
read towar
#szukam awk'iem w pliku linii zawierajacych slowo do usuniecia
#zapisuje to co znalezione do zmiennej
msg=$(awk -F# '$0~/'"$towar"'/ {print $1,$2,$3}' sklep.txt)
#z pliku usuwam to co zostalo znalezione przez awk
#zapisuje do zmiennej
zm=$(sed '/$msg/d' sklep.txt)
echo $zm > tmp.txt
awk -F# '{print $1,$2,$3}' tmp.txt > sklep.txt
dialog --title "PO USUNIECIU" \
--msgbox "`awk '{print $1,$2,$3}' sklep.txt`" 10 30
rm -f tmp.txt