co je spatne na tomhle skriptu ??
matus.uhlar na in.nextra.sk
matus.uhlar na in.nextra.sk
Čtvrtek Říjen 14 12:46:21 CEST 1999
Corp. yA Zdenek Pizl <pizl na max.af.czu.cz> wrote:
-> FLAG="header"
-> while read line; do
-> # tady udelame test na to, jestli jsme uz nacetli oddelovaci radek <!--end-->
-> if [ $FLAG = "header" ]; then
spravne:
if [ "$FLAG" = header ]; then
-> echo "To header : $line"
-> else
-> echo "To footer : $line"
-> fi
-> # nastavime priznak, ze jsme uz nacetli oddelovaci radek <!--end-->
-> if [ $line = "<!--end-->" ]; then
spravne:
if [ "4line" = "<!--end-->" ]; then
-> FLAG="footer"
-> fi
-> done < $FHTML
je to jednoduche ako facka (imho)
if [ $premenna = "test" ]; then
je chybne ponata konstrukcia. vychadza z pascalu alebo C kde busi byt
retazec uzavrety v uvodzovkach. v shell skripte sa to odovzda ako parameter
bez uvodzoviek teda jedho ci napiseme
echo "ahoj"
alebo
echo ahoj
v kazdom pripade dostane echo jeden argument a to ahoj. Rozdiel vsak je ked
napiseme
echo "Ahoj vole"
a
echo Ahoj vole
v druhom pripade dostane echo dva argumenty v prvom jeden, strati sa
informacia ako boli tieto slove oddelene...
uvidite ked vyskusate
echo "Ahoj vole"
a
echo Ahoj vole
ak expandujete argument bez "" takze
read premenna
echo $premenna
a
echo "$premenna"
dostanu tolko argumentov kolko bolo slov takze ked do vstupu zadate
ahoj vole
dostanete rovnaky rozdiel ako predtym.
Nuz a ked pouzivate
if [ $premenna = ahoj ]
a premenna obsahuje text
ahoj vole
rozvinie sa to na
if [ ahoj vole = ahoj ]
takze test dostane parametre
"ahoj" "vole" "=" "ahoj"
a nevie ako sa z toho vysomarit...
--
Matus "fantomas" Uhlar, sysadmin at NEXTRA, Slovakia; IRC admin of *.sk
uhlar na fantomas.sk; http://www.fantomas.sk/; http://www.nextra.sk/
Enter any 12-digit prime number to continue.
Další informace o konferenci Linux