Oye ati kikọ awọn iṣẹ ni Awọn iwe afọwọkọ Shell - Apakan VI
Awọn iṣẹ ṣe ipa pataki ninu eyikeyi ede siseto. Bii ọpọlọpọ awọn ede siseto gidi, bash ni awọn iṣẹ eyiti o lo pẹlu imuse opin.
Kini awọn iṣẹ?
Ninu siseto, awọn iṣẹ ni orukọ awọn apakan ti eto ti o ṣe iṣẹ kan pato. Ni ori yii, iṣẹ kan jẹ iru ilana tabi ilana ṣiṣe. Nigbati a ba pe iṣẹ kan eto naa fi apakan ti koodu lọwọlọwọ silẹ o bẹrẹ lati ṣe laini akọkọ ninu iṣẹ naa. Nigbakugba ti koodu atunwi wa tabi nigbati iṣẹ-ṣiṣe ba tun ṣe, ronu lilo iṣẹ dipo.
Fun apẹẹrẹ, ṣe akiyesi ọran nibiti a nilo lati wa otitọ ti nọmba ni awọn ipo pupọ ti eto kan pato. Dipo kikọ gbogbo koodu (fun iṣiro iṣiro) kọọkan ati ni gbogbo igba, a le kọ apakan koodu naa eyiti o ṣe iṣiro asọtẹlẹ lẹẹkan ni inu apo kan ki o tun lo kanna ni awọn iṣẹlẹ lọpọlọpọ.
- O ṣe iranlọwọ fun wa lati tun lo koodu naa.
- Ṣatunṣe kika eto naa.
- Lilo daradara ti awọn oniyipada inu eto naa.
- Gba wa laaye lati ṣe idanwo apakan eto naa ni apakan.
- Eto ti o han bi opo awọn igbesẹ-kekere.
Iṣọpọ gbogbogbo fun awọn iṣẹ kikọ ni iwe afọwọkọ pẹlu awọn ọna wọnyi.
function func_name { . . . commands . . . } or func_name ( ) { . . . commands . . . } Opening curly braces can also be used in the second line as well. func_name ( ) { . . . commands . . . }
O ni ominira nigbagbogbo lati kọ awọn ofin to wulo ninu awọn bulọọki iṣẹ wọnyi bi a ṣe ṣe deede ni awọn iwe afọwọkọ ikarahun. Bayi jẹ ki a gbiyanju lati kọ iwe afọwọkọ kan ti o rọrun pẹlu iṣẹ kekere inu rẹ.
#!/bin/bash call_echo ( ) { echo ‘This is inside function’ } op=$1 if [ $# -ne 1 ]; then echo "Usage: $0 <1/0>" else if [ $1 = 0 ] ; then echo ‘This is outside function’ elif [ $1 = 1 ] ; then call_echo else echo ‘Invalid argument’ fi fi exit 0
Itumọ iṣẹ gbọdọ ṣaju ipe akọkọ si rẹ. Ko si nkankan bii ‘kede iṣẹ naa’ ṣaaju pipe. Ati pe a le ṣe itẹ-ẹiyẹ nigbagbogbo awọn iṣẹ inu awọn iṣẹ.
Akiyesi: - Kikọ awọn iṣẹ ofo nigbagbogbo awọn abajade ni awọn aṣiṣe sintasi.
Nigbati a ba ṣalaye iṣẹ kanna ni awọn igba pupọ, ẹya ikẹhin ni ohun ti a pe. Jẹ ki a mu apẹẹrẹ kan.
#!/bin/bash func_same ( ) { echo ‘First definition’ } func_same ( ) { echo ‘Second definition’ } func_same exit 0
Jẹ ki a jinle nipa ṣiṣe akiyesi awọn iṣẹ mu awọn ipilẹ ati awọn iye pada. Lati pada iye kan lati iṣẹ kan a lo ikarahun ‘ipadabọ’ ti a ṣe sinu. Sintasi jẹ bi atẹle.
func_name ( ) { . . . commands . . . return $ret_val }
Bakan naa a le kọja awọn ariyanjiyan si awọn iṣẹ ti o ya sọtọ pẹlu awọn alafo bi a ti fun ni isalẹ.
func_name $arg_1 $arg_2 $arg_3
Ninu iṣẹ a le wọle si awọn ariyanjiyan ni aṣẹ bi $1, $2, $3 ati bẹbẹ lọ. Wo iwe afọwọkọ atẹle lati wa iwọn ti awọn odidi meji nipa lilo iṣẹ lati ṣafikun diẹ sii.
#!/bin/bash USG_ERR=7 max_two ( ) { if [ "$1" -eq "$2" ] ; then echo 'Equal' exit 0 elif [ "$1" -gt "$2" ] ; then echo $1 else echo $2 fi } err_str ( ) { echo "Usage: $0 <number1> <number2>" exit $USG_ERR } NUM_1=$1 NUM_2=$2 x if [ $# -ne 2 ] ; then err_str elif [ `expr $NUM_1 : '[0-9]*'` -eq ${#NUM_1} ] ; then if [ `expr $NUM_2 : '[0-9]*'` -eq ${#NUM_2} ] ; then max_two $NUM_1 $NUM_2 else err_str fi else err_str fi exit 0
Eyi ti o wa loke dabi eka diẹ, ṣugbọn o rọrun ti a ba ka nipasẹ awọn ila naa. Itẹ-kọkọ ti o ba jẹ pe miiran ti awọn ila fun awọn idi afọwọsi eyini ni, lati ṣayẹwo nọmba ati iru awọn ariyanjiyan pẹlu iranlọwọ ti awọn ọrọ deede. Lẹhin eyi a pe iṣẹ naa pẹlu awọn ariyanjiyan laini aṣẹ meji ati ṣafihan abajade nibẹ funrararẹ. Eyi jẹ nitori a ko le da odidi titobi pada si iṣẹ kan. Ọna miiran lati ṣiṣẹ ni ayika iṣoro yii ni lati lo awọn oniyipada agbaye lati tọju abajade inu iṣẹ. Iwe afọwọkọ ti o wa ni isalẹ ṣe alaye ọna yii.
#!/bin/bash USG_ERR=7 ret_val= max_two ( ) { if [ "$1" -eq "$2" ] ; then echo 'Equal' exit 0 elif [ "$1" -gt "$2" ] ; then ret_val=$1 else ret_val=$2 fi } err_str ( ) { echo "Usage: $0 <number1> <number2>" exit $USG_ERR } NUM_1=$1 NUM_2=$2 if [ $# -ne 2 ] ; then err_str elif [ `expr $NUM_1 : '[0-9]*'` -eq ${#NUM_1} ] ; then if [ `expr $NUM_2 : '[0-9]*'` -eq ${#NUM_2} ] ; then max_two $NUM_1 $NUM_2 echo $ret_val else err_str fi else err_str fi exit 0
Bayi gbiyanju diẹ ninu awọn iṣoro igbadun ti o ṣalaye ninu jara afọwọkọ ikarahun iṣaaju nipa lilo awọn iṣẹ bi atẹle.
- Loye Awọn imọran Ede Ikarahun Ikarahun Linux - Ipilẹ I
- Awọn iwe afọwọkọ Shell 5 fun Awọn tuntun Linux lati Kọ ẹkọ Eto Ikarahun - Apakan II
- Gbigbe Nipasẹ Agbaye ti Linux BASH Writing - Apá III
- Isiro Iṣiro ti Siseto Ikarahun Ikarahun Linux - Apakan IV Ṣiṣiro Awọn asọye Iṣiro ni Ede Ibawe ikarahun - Apakan V
Emi yoo pada pẹlu oye diẹ si awọn ẹya iṣẹ bi lilo awọn oniyipada agbegbe, ifadasẹhin abbl ni apakan ti n bọ. Duro si imudojuiwọn pẹlu awọn asọye.