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: flashrobot 21 Října 2010, 16:52:16

Název: Bash Optimalizacia kodu
Přispěvatel: flashrobot 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


Název: Re: Bash Optimalizacia kodu
Přispěvatel: pacholik 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
Název: Re: Bash Optimalizacia kodu
Přispěvatel: flashrobot 23 Října 2010, 23:22:04
Diky, a nedalo by sa to este nejak bez pouzitia suboru?
Název: Re: Bash Optimalizacia kodu
Přispěvatel: Yontalcar 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ší
Název: Re: Bash Optimalizacia kodu
Přispěvatel: flashrobot 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...
Název: Re: Bash Optimalizacia kodu
Přispěvatel: Yontalcar 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