VI קלח - תפטעמ לש םיטפירקסב הביתכו הנבה תויצקנופ


.לבגומ םושיי םע תושמשמה תויצקנופ שי bash -ל ,תובר תויתימא תונכת תופש ומכ .תונכת תפש לכב בושח דיקפת תויצקנופל

?תויצקנופ ןהמ

.תאז םוקמב היצקנופב שמתשהל לוקש ,תרזוח המישמ רשאכ וא רזוח דוק שיש םעפ לכב .היצקנופה ךותב הנושארה הרושה תא עצבל הליחתמו יחכונה דוקה עטק תא תבזוע תינכותה היצקנופ תארקנ רשאכ .הרגש וא ךילה לש

.תויונמדזה רפסמב רזוח שומיש וב תושעלו קולב ךותב תחא םעפ לעפמה תא בשחמה דוקה לש קלח ותוא תא בותכל םילוכי ונא ,םעפ לכב (לעפמה בושיחל) דוקה לכ תא בותכל םוקמב .תמיוסמ תינכות לש םיבלש רפסמב רפס

    .תואבה םיכרדה תא ללוכ תפטעמ טפירקסב הביתכ תויצקנופל יללכה ריבחתה

    function func_name {
    	. . .
    	commands
    	. . .
    }
    
    or
    
    func_name ( ) {
    	. . .
    	commands
    	. . .
    }
    
    Opening curly braces can also be used in the second line as well.
    
    func_name ( )
    {
    	. . .
    	commands
    	. . .
    }

    .וכותב הנטק היצקנופ םע דחא טושפ טפירקס בותכל הסננ ואוב וישכע .תפטעמ לש םיטפירקסב ללכ ךרדב םישוע ונאש יפכ הלא תויצקנופ ישוג ךותב תופקת תודוקפ בותכל יאשר דימת התא

    #!/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

    .תויצקנופ ךותב תויצקנופ ןנקל לכונ דימתו .הל םיארוקש ינפל 'היצקנופה לע זירכהל' ומכ ןיא .הילא הנושארה החישה תא םידקהל היצקנופה תרדגה לע

    .ריבחת תואיגשל דימת האיבמ תוקיר תויצקנופ תביתכ - :הרעה

    .אמגוד חקינ ואוב .תלעפומש וז איה תיפוסה הסרגה ,םימעפ רפסמ תרדגומ היצקנופ התוא רשאכ

    #!/bin/bash
    
    func_same ( ) {
    	echo ‘First definition’
    }
    
    func_same ( ) {
    	echo ‘Second definition’
    }
    
    func_same
    
    exit 0

    .ןמקלדכ אוה ריבחתה .תינבומה 'רזחה' תפטעמב םישמתשמ ונא היצקנופמ ךרע ריזחהל ידכ .םיכרע תוריזחמו םירטמרפ תוחקולש תויצקנופ תניחב ידי לע קימעהל ואוב

    func_name ( ) {
    	. . .
    	commands
    	. . .
    	return $ret_val
    }

    .ןלהל טרופמכ םיחוורב תודרפומה תויצקנופל םינועיט ריבעהל םילוכי ונא המוד ןפואב

    func_name $arg_1 $arg_2 $arg_3

    .רתוי הבר תוריהב ףיסוהל ידכ היצקנופב םישמתשמה םימלש םירפסמ ינש לש םומיסקמה תא אוצמל ידכ אבה המגודל טפירקסב ןייע .האלה ןכו 3 $,2 $,1 $רדסב םיחוכיוול תשגל םילוכי ונא היצקנופה ךותב

    #!/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

    .וז הטיש ריבסמ ןלהלש טירסתה .היצקנופה ךותב האצותה ןוסחאל םיילבולג םינתשמב שמתשהל איה וז היעב ףוקעל תפסונ ךרד .היצקנופמ םילודג םימלש םירפסמ ריזחהל םילוכי אל ונחנאש איה ךכל הביסה .המצע האצות

    #!/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

    .ןמקלדכ תויצקנופ תועצמאב זגפ לש תמדוקה םיטפירקס תרדסב ורבסוהש תושגרמ תויעב המכ הסנ תעכ

      .תובוגתב ןכדועמ ראשיה .אבה קלחב' וכו היסרוקר ,םיימוקמ םינתשמב שומיש ומכ תוילנויצקנופ תונוכת לע תונבות רתוי םע רוזחא ינא