Ịghọta na edemede ọrụ na Shell Scripts - Nkebi VI


Ọrụ na-arụ ọrụ dị mkpa n'asụsụ mmemme ọ bụla. Dị ka ọtụtụ ezigbo asụsụ mmemme, bash nwere ọrụ nke ejiri obere mmejuputa ya mee ihe.

Kedu ihe bụ ọrụ?

Na mmemme, a na-akpọ ọrụ aha ngalaba nke mmemme na-arụ otu ọrụ. N'echiche a, ọrụ bụ ụdị usoro ma ọ bụ usoro. Mgbe a na-akpọ ọrụ mmemme na-ahapụ ngalaba nke koodu dị ugbu a wee malite ime akara mbụ n'ime ọrụ ahụ. Mgbe ọ bụla enwere koodu ugboro ugboro ma ọ bụ mgbe ọrụ kwughachiri, tụlee iji otu ọrụ kama.

Dịka ọmụmaatụ, tulee ọnọdụ ebe anyị kwesịrị ịchọta ọnụọgụgụ n'ọtụtụ ọkwa nke otu mmemme. Kama ịde koodu ahụ dum (maka ịgbakọ factorial) oge ọ bụla, anyị nwere ike ide akụkụ nke koodu ahụ nke na-agbakọ factorial otu ugboro n'ime ngọngọ ma jiri ya mee ihe n'ọtụtụ oge.

  1. Ọ na-enyere anyị aka iji koodu ahụ ọzọ.
  2. Melite ikike ọgụgụ nke mmemme.
  3. Ojiji mgbanwe dị mma n'ime mmemme.
  4. Na-enye anyị ohere ịnwale akụkụ mmemme site na akụkụ.
  5. Ngosipụta mmemme dị ka ụyọkọ nke obere nzọụkwụ.

Nchịkọta izugbe maka ọrụ ide ihe n'edemede shei gụnyere ụzọ ndị a.

function func_name {
	. . .
	commands
	. . .
}

or

func_name ( ) {
	. . .
	commands
	. . .
}

Opening curly braces can also be used in the second line as well.

func_name ( )
{
	. . .
	commands
	. . .
}

Ị na-enwere onwe gị mgbe niile ide iwu ziri ezi n'ime ngọngọ ọrụ ndị a dịka anyị na-eme na scripts shei. Ugbu a, ka anyị gbalịa dee otu edemede dị mfe nke nwere obere ọrụ n'ime ya.

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

Nkọwa ọrụ ga-eburịrị oku nke mbụ gaa na ya. Ọ dịghị ihe dị ka 'ịkọwapụta ọrụ' tupu ịkpọ ya. Na anyị nwere ike mgbe akwu ọrụ n'ime ọrụ.

Mara:- Ide ọrụ efu na-ebute njehie syntax mgbe niile.

Mgbe akọwara otu ọrụ ọtụtụ ugboro, ụdị ikpeazụ bụ ihe a na-akpọku. Ka anyị were ihe atụ.

#!/bin/bash

func_same ( ) {
	echo ‘First definition’
}

func_same ( ) {
	echo ‘Second definition’
}

func_same

exit 0

Ka anyị banye n'ime omimi site n'ịtụle ọrụ na-ewere parameters na iweghachi ụkpụrụ. Iji weghachi uru site na ọrụ anyị na-eji shei 'nlaghachi' arụnyere n'ime ya. Syntax dị ka ndị a.

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

N'otu aka ahụ anyị nwere ike ibufe arụmụka na ọrụ ndị kewapụrụ na oghere dị ka e nyere n'okpuru.

func_name $arg_1 $arg_2 $arg_3

N'ime ọrụ anyị nwere ike ịnweta arụmụka dịka $1, $2, $3 na ndị ọzọ. Lee anya n'edemede ihe atụ na-esonụ ka ịchọta ọnụọgụ ọnụọgụ abụọ kachasị site na iji ọrụ tinyekwuo idoanya.

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

Ihe dị n'elu dị ka ihe mgbagwoju anya, mana ọ dị mfe ma ọ bụrụ na anyị na-agụ site na ahịrị. Ebu ụzọ nweta ma ọ bụrụ-ọzọ ma ọ bụrụ ahịrị maka ebumnuche nkwado ya bụ, ịlele ọnụọgụgụ na ụdị arụmụka site n'enyemaka nke okwu oge niile. Mgbe nke ahụ gasịrị, anyị na-akpọ ọrụ ahụ na arụmụka ahịrị iwu abụọ wee gosipụta nsonaazụ n'ebe ahụ n'onwe ya. Nke a bụ n'ihi na anyị enweghị ike iweghachite ọnụọgụ buru ibu site na ọrụ. Ụzọ ọzọ ị ga-esi rụọ ọrụ na nsogbu a bụ iji mgbanwe ụwa na-echekwa nsonaazụ n'ime ọrụ. Edemede dị n'okpuru na-akọwa usoro a.

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

Ugbu a nwalee ụfọdụ nsogbu na-akpali akpali nke akọwara na usoro edemede shei gara aga site na iji ọrụ dị ka ndị a.

  1. Ghọta ndụmọdụ Asụsụ Scripting Shell Basic Linux – Nkebi nke Mbụ
  2. 5 Shell Scripts maka Linux Newbies ịmụta Shell Programming – Nkebi II
  3. Ịkwọ ụgbọ mmiri Site na Ụwa nke Linux BASH Scripting – Nkebi III
  4. Akụkụ mgbakọ na mwepụ nke Mmemme Shell Linux – Nkebi IV
  5. Ịgbakọ okwu mgbakọ na mwepụ n'asụsụ Shell Scripting - Nkebi V

M ga-eji nghọta nwetakwuo atụmatụ arụ ọrụ dị ka iji mgbanwe mpaghara, nlọghachite wdg na akụkụ na-esote. Nọgide na-ekwu na emelitere.