Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: honzikPP 14 Října 2009, 13:17:52

Název: Bash - help while podmienka
Přispěvatel: honzikPP 14 Října 2009, 13:17:52
Momentalne sa len ucim scriptovat v bashi tak ma prosim nelyncujte.
Vsetko by to fungovalo ale nemozem sa dopatrat k tomu preco mi to vypisuje chybu. Problem je niekde bud v druhej podmienke if alebo v definovanej podmienke "podm(){while read line..." jednie o co mi ide je aby to na konci zmeny riadkov na md5 vypisalo, ze sa to ukoncilo.

Kód: [Vybrat]
#!/bin/sh

if ! [ $# -eq 2 ];
then
      echo "---------------------"
      echo -n "Script zadavaj v tvare: "
      echo -e "\033[1m$0 vstupny_subor vystupny_subor\033[0m"
      echo ""
else
      podm ()
      {
      while read line
      do
      echo $line | md5sum >> $2
      done < '$1'
      }
      if podm;
      then
            echo "Dokoncene"
      fi;
fi
Název: Re: Bash - help while podmienka
Přispěvatel: nettezzaumana 14 Října 2009, 13:53:06
pokud uzavres $1 do 'jednoduchych' uvozovek, tak se $1 nesubstituuje
Název: Re: Bash - help while podmienka
Přispěvatel: honzikPP 14 Října 2009, 14:13:25
aj po odstraneni tych uvodzoviek to hlasi ambigous redirect.  :-\
Název: Re: Bash - help while podmienka
Přispěvatel: nettezzaumana 14 Října 2009, 14:49:32
ad.1) man bash ## a zejmena volbu -x
ad.2) set -x

ad.3) while block; do block; done < file ## pokud nemas file, tak musis udelat emulaci pres fd aka <(block) .. takze < <(echo $1)

ad.4) a nebo muzes udelat .. echo $1 | while read line; do ..; done