셸 스 크 립 트 (함수 정의 및 매개 변수 호출)
함 수 는 특정한 기능 을 완성 하 는 코드 세 션 입 니 다. 셸 에서 함 수 를 정의 하면 코드 모듈 화 를 사용 할 수 있 고 호출 이 편리 합 니 다. 함 수 는 먼저 정의 해 야 사용 할 수 있 습 니 다.
함수 정의 방식
방법 1:
함수 명 () {
함수 구현 기능 코드
}
방법 2:
function 함수 이름 {
함수 구현 기능 코드
}
2. 호출 매개 변수
함수 명 변수
함수 명 변수 재 할당
함수 명 위치 변수 $1 $2 $3.....
다음은 함수 전 삼 의 예제 이다.
함수 위치 변수의 전달
#!/bin/bash
########函数的位置参数传递
if [ $# -ne 3 ];then #如果脚本后接的参数不等于3个,那么则打印脚本用法并退出
echo "usage: : `basename $0` par1 par2 par3"
exit
fi
fun() {
echo "$[$1 * $2 * $3]"
#这里的$1 $2 $3是函数的位置参数
}
result=`fun $1 $2 $3`
#而这里的$1 $2 $3是脚本的接受的位置参数,而fun函数将脚本接受的位置参数传递到了函数中
echo "$result"
함수 호출 배열 변수 에서 의 수치
#################
#该脚本先定义数组,其中有1-5个值,而后定义一个arry函数,作用是接收外部参数num的数值,并且每次取值与sum值相乘
num=(1 2 3 4 5) #定义数组num
sum=1 #定义sum初始值为1
#定义函数array
arry() {
for i in "$@" # "$@" 为所有参数 $* 也代表所有参数,不需要加“”
do
let sum*=$i #sum的值与$i读取的值相乘,再赋值给自己
done
}
arry ${num[@]} # 执行函数array,读取$num中的值.
echo $sum
#!/bin/bash
#以上脚本作用和该脚本相同,执行脚本时带数字参数,for循环所有数字,逐个给sum2相乘
sum2=1
for j in $*
do
let sum2*=$j
done
echo $sum2
다음 예 는 정의 변수 에서 파 라 메 터 를 가 져 와 함수 에 변 수 를 다시 할당 하 는 방법 을 예 로 들 수 있 습 니 다.
local 변수 이름 은 다른 변수 와 충돌 하지 않 고 이 함수 에서 만 유효 하 며 전역 에 영향 을 주지 않 습 니 다.
#!/bin/bash
##############
#接收变量重新赋值
#传递参数到函数中,并且重新计算赋值
################
num=( 1 2 3 ) #赋值数组num
#定义函数array
array() {
local newnum=($*) #定义函数局部变量newnum
local i #定义函数局部变量i
for ((i=0;i
小扩展,函数返回值
#!/bin/bash
###
##funtion的函数返回值 return
############
fun() {
read -p "enter number: " num
let sum=2*$num
#返回$?的值
return $[2*$num]
}
fun
#shell的返回值不能超过255,无论你输入什么数字,以上运算返回的值都在255以内
echo "fun return value: $?"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
셸 스 크 립 트 (다 중 스 레 드 대량 생 성 사용자)
예 를 들 어 백업 데이터 베 이 스 는 100 개의 라 이브 러 리 가 있 고 정상 적 인 백업 효율 이 매우 낮 습 니 다.다 중 스 레 드 가 있 으 면 백업 하 는 데 10 시간 이 걸 릴 수도 있 었 는데 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.