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
-
Zdar, kedze ste mi minule sikovne poradili skusim este raz:)
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
-
tak asi uložit do souboru
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
-
Diky, a nedalo by sa to este nejak bez pouzitia suboru?
-
dá
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ší
-
Hm, zaujimave a vysvetlis mi pls co znamena "<<<" ? Este som sa s tym nestretol.
Inak funguje mi to este aj takto:
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...
-
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
cat << EOF
nějaký
text
EOF