Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Bash - help while podmienka  (Přečteno 1607 krát)

honzikPP

  • Návštěvník
  • Příspěvků: 2
Bash - help while podmienka
« kdy: 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

nettezzaumana

  • Host
Re: Bash - help while podmienka
« Odpověď #1 kdy: 14 Října 2009, 13:53:06 »
pokud uzavres $1 do 'jednoduchych' uvozovek, tak se $1 nesubstituuje

honzikPP

  • Návštěvník
  • Příspěvků: 2
Re: Bash - help while podmienka
« Odpověď #2 kdy: 14 Října 2009, 14:13:25 »
aj po odstraneni tych uvodzoviek to hlasi ambigous redirect.  :-\

nettezzaumana

  • Host
Re: Bash - help while podmienka
« Odpověď #3 kdy: 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

 

Provoz zaštiťuje spolek OpenAlt.