記録: 429
シナリオ:シェルスクリプト関数の適用、関数定義、関数呼び出し、関数パラメータの受け渡し。
バージョン: CentOS Linux リリース 7.9.2009。
1. 通常の機能
通常の関数の例には、入力パラメータも戻り値もありません。
1.1脚本
脚本名称:b2023051701.sh
脚本内容:
#!/bin/bash
#1.定义函数-带function关键字
function f1(){
for city in "Hangzhou" "Suzhou" "Shanghai"
do
echo "城市名称: ${city}"
done
}
#2.定义函数-不带function关键字
f2(){
for province in 'Zhejiang' 'Jiangsu'
do
echo "省名称: ${province}"
done
}
#3.调用函数
echo "f1输出结果:"
result=$(f1)
echo "${result}"
echo "f2输出结果:"
result=$(f2)
echo "${result}"
1.2 実行と出力
コマンドを実行します: bash b2023051701.sh
出力結果:
f1输出结果:
城市名称: Hangzhou
城市名称: Suzhou
城市名称: Shanghai
f2输出结果:
省名称: Zhejiang
省名称: Jiangsu
2. 関数は return を使用して値を返します。
シェル関数の戻り値は 0 ~ 255 の整数のみであり、0 のみが成功を示し、その他の値は失敗を示します。
シェル関数を使用する場合、return を使用して値を返す実際の意味はあまり明らかではありません。
2.1脚本
脚本名称:b2023051702.sh
脚本内容:
#!/bin/bash
#1.定义函数,使用return返回值
function f1(){
echo '计算两数相乘结果'
echo '输入第一个数字:'
read firstNum
echo '输入第二个数字:'
read secondNum
return $((${firstNum}*${secondNum}))
}
#2.调用函数f1
f1
echo "f1计算结果: $? "
2.2 実行と出力
コマンドを実行します: bash b2023051702.sh
出力結果:
计算两数相乘结果
输入第一个数字:
33
输入第二个数字:
3
f1计算结果: 99
3. 関数は戻り値としてエコー出力を使用します。
この関数は、エコー出力を戻り値として使用します。
3.1脚本
脚本名称:b2023051703.sh
脚本内容:
#!/bin/bash
#1.定义函数,使用echo输出作为返回值
function f2(){
firstNum=1024
secondNum=3
echo $((firstNum*secondNum))
}
#2.调用函数f2
result=$(f2)
echo "f2计算结果:"
echo "${result}"
3.2 実行と出力
コマンドを実行: bash b2023051703.sh
出力結果:
f2计算结果:
3072
4. 関数は戻り値としてグローバル変数を使用します
関数は戻り値としてグローバル変数を使用します。
4.1脚本
脚本名称:b2023051704.sh
脚本内容:
#!/bin/bash
#1.定义函数,使用全局变量作为函数返回值
result=0 #全局变量存放函数结果
function f3(){
firstNum=1024
secondNum=4
result=$((firstNum*secondNum))
}
#2.调用函数f3
f3
echo "f3计算结果:"
echo "${result}"
4.2 実行と出力
コマンドを実行します: bash b2023051704.sh
出力結果:
f3计算结果:
4096
5. パラメータを渡す関数
関数はプレースホルダーを使用してパラメーターを渡します。
5.1脚本
脚本名称:b2023051705.sh
脚本内容:
#!/bin/bash
# 1.定义函数,使用占位符定义参数
function f1(){
echo "country: $1"
echo "Province: $2"
echo "City: $3"
}
#2.调用函数,传递参数
result=$(f1 "China" "Zhejiang" "Hangzhou")
echo "执行结果: "
echo "${result}"
5.2 実行と出力
コマンドを実行します: bash b2023051705.sh
出力結果:
执行结果:
country: China
Province: Zhejiang
City: Hangzhou
6. 関数は return を使用して値を返します
関数はプレースホルダーを使用してパラメーターを渡します。スクリプト実行エントリからパラメータを入力します。
6.1脚本
脚本名称:b2023051706.sh
脚本内容:
#!/bin/bash
# 1.定义函数,使用占位符定义参数
function f1(){
echo "country: $1"
echo "Province: $2"
echo "City: $3"
}
#2.调用函数,传递参数
v1=$1
v2=$2
v3=$3
result=$(f1 ${v1} ${v2} ${v3})
echo "执行结果: "
echo "${result}"
6.2 実行と出力
実行コマンド: bash b2023051706.sh 中国浙江省杭州
出力結果:
执行结果:
country: 中国
Province: 浙江
City: 杭州
以上、ありがとうございます。
2023 年 5 月 17 日