runes Most fogtam bele a témába csodálatos világába de mán if nél vérzek. Azt akarom hogy ha megkapja a script "3,3,3" adatot írja ki pl hogy "works" de minden más számra pl: "2,1,4" írja ki hogy "wokrs1" Milyen elágazással valósítható ez meg?
Kendek Eléggé az elején lehetsz akkor még. Én azt javaslom, hogy a nem létező tudás gyakorlati alkalmazása előtt olvasgass kicsit utána, vagy legalább példákat elemezgess.
runes a mesterNulláról kezdtem de valahonnan el kell indulni :). Sokat segíteni ha legalább látnám hogy hogyan néz ki egyben.
a mester runesLetöltesz netről mintaprogikat. Azok egyben vannak. Meg találsz a gépeden is szekérderéknyi szkriptet, azok is egyben vannak, nap mint nap futkorásznak neked.
Kendek runes{syntaxhighlighter SPEC}if (ha) visszatérési érték 0 then (akkor) végrehajtom ezt else (egyébként pedig) végrehajtom emezt fi{/syntaxhighlighter}
sipiatti Pl. {syntaxhighlighter brush:bash} #!/bin/bash # paraméter a $1-ben, ha kaptunk if [ "z$1" != "z" ]; then if [ $1 = "3,3,3" ]; then echo "works" else echo "wokrs1" fi else echo "wokrs1" fi {/syntaxhighlighter}
a mester UdiMert így megtalálja, hogy nincs is paraméter. (Üres stringre keres. Vagyis ez pont a nemüres ág, az üres az else mögött van.)
Udi a mesterPersze, de miért a legrosszabb megoldást mutatjuk egy kezdőnek? test1.sh #!/bin/bash for i in {1..100000}; do if [ "z$1" != "z" ]; then RETCODE=0; else RETCODE=1; fi done exit $RETCODE test2.sh #!/bin/bash for i in {1..100000}; do if [ $# -eq 0 ]; then RETCODE=0; else RETCODE=1; fi done exit $RETCODE test3.sh #!/bin/bash for i in {1..100000}; do if [ -z $1 ]; then RETCODE=0; else RETCODE=1; fi done exit $RETCODE $ time ./test1.sh real 0m5.130s user 0m5.038s sys 0m0.047s $ time ./test2.sh real 0m4.702s user 0m4.585s sys 0m0.093s $ time ./test3.sh real 0m3.942s user 0m3.884s sys 0m0.046s
a mester UdiAzért, mert nem jöttél időben, hogy elmondd a frankót. Vedd tudomásul, hogy ez is a te hibád.