Kezdőoldal » Számítástechnika » Programozás » Mit rontok el ebben a scriptbe...

Mit rontok el ebben a scriptben? (shell script, linux)

Figyelt kérdés

#!/bin/bash


kiir(){

if [[ $# -eq 1 ]]

then

case $1 in

n) echo "jó napot";;

e) echo "jó estét";;

*) echo "érvénytelen betű";;

esac

else echo "egy paraméter kell: vagy n vagy e. "

fi


}



kiir


2015. márc. 22. 18:20
 1/6 anonim ***** válasza:

Nincs kap kiir funkciódnak bemenő paramétert. $1 mindig üres lesz.


Próbáld így:

kiir $1

2015. márc. 22. 18:33
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

Ejj, de nem tudok ma szimultán írni... Szóval nem adosz át bemenő paramétert a kiir rutinodnak.


Hívd így: kiir $1

2015. márc. 22. 18:34
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

Huh, tényleg. xd

Én úgy akartam, hogy vagyok a terminálban és ott írom pl. azt, hogy:

./proba.sh n


Ment a zöld kéz. :)

2015. márc. 22. 18:39
 4/6 anonim ***** válasza:

Köszönöm :)


Kétféle megoldás is akad: Az egyik, hogy nem függvénybe teszed a logikát, hanem simán inline; a másik, hogy átadod a függvénynek a kérdéses paramétert.


Ezen felül beleteheted egy változóba is, de nem túl elegáns megoldás:


export user_choice=$1


do_work() {

˙˙˙˙case $user_choice in

˙˙˙˙˙˙˙˙n) echo "Jó napot!"

˙˙˙˙˙˙˙˙e) echo "Jó estét!"

˙˙˙˙˙˙˙˙*) echo "Érrvénytelen betű!"

˙˙˙˙esac

}


if [[ $# -eq 1 ]]

then

˙˙˙˙kiir

else

˙˙˙˙echo "Egy paraméter kell: n, vagy e"

fi


A probléma ezzel a változóhasználat. Nem szép dolog, ha a szubrutin a saját scope-ján kívülre nyúlkál, hacsak nem elkerülhetetlen.


Jó problémás témakört választottál magadnak :)

2015. márc. 22. 19:13
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:

Az lehet, hogy problémás téma. :D

Ha a fgv-en belül van a változó (valami=$1) az már jobb, ugye?

2015. márc. 22. 19:19
 6/6 anonim ***** válasza:
Ne működik, illetve nincs is értelme. Egyrészt $1 a függvényen belül nem látszik, másrészt, ha látszana (de $1 a függvény saját első bemenő paramétere, nem a cmdline), akkor minek tennéd bele még egy külön változóba?
2015. márc. 23. 10:47
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!