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 Optimalizacia kodu  (Přečteno 1287 krát)

flashrobot

  • Aktivní člen
  • *
  • Příspěvků: 107
Bash Optimalizacia kodu
« kdy: 21 Října 2010, 16:52:16 »
Zdar, kedze ste mi minule sikovne poradili skusim este raz:)
Kód: [Vybrat]
for FILE in ${CMD}
do 
   FILETYPE=$(HEAD ${FILE} | grep "Content-Type" | cut -d " " -f 2 | cut -d "/" -f 1)
   FILESIZE=$(HEAD ${FILE} | grep "Content-Length" | cut -d " " -f 2)
done

Potrebujem docielit aby sa HEAD spustalo v cykle iba raz, pretoze to dost brzdi dalsi vystup. Samozre potrebujem mat v oboch premennych prislusnu hodnotu.
Diky moc



pacholik

  • Závislák
  • ***
  • Příspěvků: 2072
Re: Bash Optimalizacia kodu
« Odpověď #1 kdy: 21 Října 2010, 17:36:39 »
tak asi uložit do souboru
Kód: [Vybrat]
for FILE in ${CMD}
do 
  HEAD ${FILE} > soubor
  FILETYPE=cat soubor | grep "Content-Type" | cut -d " " -f 2 | cut -d "/" -f 1
  FILESIZE=cat soubor | grep "Content-Length" | cut -d " " -f 2
done
rm soubor

flashrobot

  • Aktivní člen
  • *
  • Příspěvků: 107
Re: Bash Optimalizacia kodu
« Odpověď #2 kdy: 23 Října 2010, 23:22:04 »
Diky, a nedalo by sa to este nejak bez pouzitia suboru?

Yontalcar

  • Stálý člen
  • **
  • Příspěvků: 833
  • Semper fidelis
Re: Bash Optimalizacia kodu
« Odpověď #3 kdy: 24 Října 2010, 00:03:39 »
Kód: [Vybrat]
for FILE in ${CMD}
do 
  output="$(HEAD ${FILE})"
  FILETYPE=grep "Content-Type"  <<< "${output}" | cut -d " " -f 2 | cut -d "/" -f 1
  FILESIZE=grep "Content-Length" <<< "${output}" | cut -d " " -f 2
done
nicméně použití souboru v /tmp může být rychlejší
« Poslední změna: 24 Října 2010, 00:24:59 od Yontalcar »
NB: ASUS X53U - AMD Brazos E450; Debian GNU/Linux Sid amd64 (KDE 4.14)
Jen dvě věci jsou nekonečné - vesmír a lidská hloupost. Tím prvním si ovšem nejsem tak jist. - Albert Einstein

flashrobot

  • Aktivní člen
  • *
  • Příspěvků: 107
Re: Bash Optimalizacia kodu
« Odpověď #4 kdy: 24 Října 2010, 12:37:55 »
Hm, zaujimave a vysvetlis mi pls co znamena "<<<" ? Este som sa s tym nestretol.
Inak funguje mi to este aj takto:
Kód: [Vybrat]
for FILE in ${CMD}
  do  
    SIZETYPE=$(HEAD ${FILE})
    FILETYPE=$(echo $SIZETYPE | cut -d ":" -f 4 | cut -d " " -f 2 )
    FILESIZE=$(echo $SIZETYPE | cut -d ":" -f 3 | cut -d " " -f 2 )
  done
Neviem ktory z tychto sposobov bude najvyhodnejsi, testoval som vsetky a maju priblizne rovnaky cas...
« Poslední změna: 24 Října 2010, 15:26:46 od flashrobot »

Yontalcar

  • Stálý člen
  • **
  • Příspěvků: 833
  • Semper fidelis
Re: Bash Optimalizacia kodu
« Odpověď #5 kdy: 26 Října 2010, 20:34:10 »
Citace: man bash
Here Strings
       A variant of here documents, the format is:

              <<<word

       The word is expanded and supplied to the command on its standard input.
takže je to podobné jako
Kód: [Vybrat]
cat << EOF
nějaký
  text
EOF
NB: ASUS X53U - AMD Brazos E450; Debian GNU/Linux Sid amd64 (KDE 4.14)
Jen dvě věci jsou nekonečné - vesmír a lidská hloupost. Tím prvním si ovšem nejsem tak jist. - Albert Einstein

 

Provoz zaštiťuje spolek OpenAlt.