Created
January 20, 2011 14:36
-
-
Save gdemir/787968 to your computer and use it in GitHub Desktop.
e-h.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| cevir() { | |
| local msj=$1 | |
| local default=$2 | |
| while :; do | |
| echo $msj | |
| read cevap | |
| [ -z "$cevap" ] && cevap=$default | |
| case $cevap in | |
| [Ee]) return 0;; | |
| [Hh]) return 1;; | |
| *) echo "ne diyorsun anlamiyorum";; | |
| esac | |
| done | |
| } | |
| if cevir "benle misin değil misin iskoçyalı ?" "e"; then | |
| echo "nevet" | |
| else | |
| echo "nayir" | |
| fi |
Author
#!/bin/bash'de local msj=$1 tek satırda hatasız çalıştı hocam, local'i de anladım ona göre düzenledim.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
neden yaptık? bu örnek için söylüyorum, elin alışsın diye (
default'u dalocalyapmalıydın).localismi üzerinde lokal değişken tanımlıyor. aksi halde tüm o değişkenler global olacaktı. yanicevirişlevinden sonra da hayatını sürdürecek ve belki bir yerde başını ağrıtacaktı. böyle kısa kodlarda gerek olmayabilir ama uzunca ve bol işlevli kodlarda mutlaka böyle yapman lazım.locali iki satırda yazma gerekliliğine gelince, bu bir taşınabilirlik meselesi.bash'te gerekmez (ki ben boş bulunup ona göre açıkladım), fakat POSIX (standart) shell'de gerekir. test için#!/bin/shshe-bang'i#!/bin/bashile değiştir ve gör.