Bii o ṣe Ṣẹda ati Pe Awọn iṣẹ ni Bash

Itọsọna iyara lori bii o ṣe le ṣẹda ati pe awọn iṣẹ ni Bash.

Iṣẹ kan jẹ bulọọki ti koodu atunṣe ti o lo lati ṣe diẹ ninu iṣe. Pẹlu awọn iṣẹ, a gba modularity ti o dara julọ ati alefa giga ti ilotunlo koodu.

Bash pese diẹ ninu awọn iṣẹ ti a ṣe sinu bii echo ati read, ṣugbọn a tun le ṣẹda awọn iṣẹ ti ara wa.




Ṣiṣẹda Iṣẹ kan ni Bash

Awọn ọna meji lo wa ti a le ṣẹda awọn iṣẹ ni Bash:

Ọna kan ni lati lo orukọ iṣẹ nikan, fun apẹẹrẹ:


functionName(){ // scope of function }

Iwapọ iwapọ:

functionName(){ echo 'hello'; }

Ọna miiran ni lati kede iṣẹ kan ni lilo function koko:

function functionName { // scope of function }

Iwapọ iwapọ:

function functionName { echo 'hello'; }

Ṣe akiyesi bii a ko ṣe nilo () nigba lilo function koko lati ṣẹda iṣẹ kan.


Awọn aaye pataki lati ṣe akiyesi nipa awọn iṣẹ Bash:

  • Koodu ti o wa laarin awọn àmúró diduro {} jẹ ara iṣẹ ati dopin
  • Nigbati a ba n pe iṣẹ kan, a kan lo orukọ iṣẹ lati ibikibi ninu iwe afọwọkọ bash
  • Iṣẹ naa gbọdọ ṣalaye ṣaaju lilo
  • Nigbati o ba nlo ẹya iwapọ, aṣẹ to kẹhin gbọdọ ni semicolon ;

Apẹẹrẹ:

Koodu ti o tẹle yii ṣẹda iṣẹ eyiti o tẹ jade “Hello World” si itọnisọna naa. Orukọ iṣẹ naa ni a pe sitaHello :

#!/bin/bash printHello(){
echo 'Hello World!' }


Pipe Iṣẹ kan ni Bash

Bawo ni a ṣe pe iṣẹ ti o wa loke? Gbogbo ohun ti o nilo lati ṣe ninu iwe afọwọkọ rẹ bash ni lati kọ orukọ iṣẹ naa ati pe yoo pe.


Fun apere:

#!/bin/bash printHello(){
echo 'Hello World!' } # Call printHello function from anywhere in the script by writing the name printHello

Ijade:

'Hello World'

Awọn ariyanjiyan ti o kọja

Iṣẹ ti o wa loke printHello() ko ni awọn ipele kankan. Nigbakugba ti a ba pe, a gba iṣẹjade “Hello World”. Ṣugbọn kini ti a ba fẹ ṣẹda iṣẹ jeneriki diẹ sii? Fun apẹẹrẹ a le pe iṣẹ naa pẹlu ariyanjiyan kan ati pe yoo tẹ ohun ti a firanṣẹ si.

Awọn ọna meji lo wa lati ṣe eyi.


Ni akọkọ a le ṣe atunṣe printHello() iṣẹ lati tẹ awọn ariyanjiyan ti o kọja si rẹ:

Fun apere:

#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny World printAny DevQa printAny I love coding!

Ijade:

Hello World Hello DevQA Hello I

Ṣe akiyesi bi alaye atẹjade kẹta printAny I love coding! nikan ti jade 'Hello, I'.


Eyi jẹ nitori pe a ṣe apẹrẹ iṣẹ wa lati mu nikan paramita 1 $1. Ọrọ naa “Mo nifẹ ifaminsi!” jẹ kosi 3 sile.

Ti a ba fẹ lati tẹ gbogbo rẹ ni a yoo nilo lati fi awọn agbasọ sori ọrọ naa

Fun apere:

#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny 'I love coding!'

Ijade:

Hello I love coding

Apẹẹrẹ miiran, a le kọja ninu awọn nọmba daradara:

#!/bin/bash add() {
result=$(($1 + $2))
echo 'Result is: $result' } add 1 2

Ijade:

Result is: 3

Awọn iye pada

Awọn iṣẹ Bash tun le da awọn iye pada.

Fun apere:

#!/bin/bash add() {
result=$(($1 + $2)) } add 1 2 echo 'The sum is: '$result

Ijade:

The sum is: 3

Ọna miiran lati pada si awọn iye lati iṣẹ kan ni lati fi abajade si oniyipada eyiti o le lo bi ati nigba ti o nilo.

Fun apere:

#!/bin/bash add () { local result=$(($1 + $2)) echo '$result' } result='$(add 1 2)' echo 'The sum is: '$result

Ijade:

The sum is: 3