ヘアラインレスキューに失敗しました
1つは、シェル関数です。
コマンドシーケンスを1つの形式でまとめると、コマンドシーケンス
を再利用できます。
1.シェル関数の定義形式:
1.
function 函数名{
命令序列
}
2.
函数名(){
命令序列
}
2.関数の戻り値
戻る
returnは、関数を終了して終了値を返すことを意味します。値(0-255)は、スクリプトの$?変数で表示できます。
原則:
1。$?はであるため、関数が終了すると戻り値が取得されます。最後のコマンド
2.0-255の判断だけです。それを超えた場合は、256で割り、余りを取ります。
エコーも
実験コードに直接戻ることができます。
[root@rain opt]#vim aaa.sh
#!/bin/bash
#测试
function hs {
read -p "请输入任一个值" v
return $[$v*2]
}
hs
echo "$?"
エコーして戻る
以下のエコーを使用して戻る場合
3.機能パラメータの転送
- 関数変数(ローカル変数とグローバル変数)のスコープ
- シェルスクリプトの関数は、現在のシェル環境でのみ有効です
- シェルスクリプトの変数は、デフォルトでグローバルに有効です
- 変数を関数の内部ローカル、つまりローカル変数に制限します
転送パラメータ
[root@rain opt]#vim demo22.sh
#!/bin/bash
#
sum1 () {
sum=$[ $1 + $2 ]
echo $sum
}
sum1 $1 $2
[root@rain opt]#sh demo22.sh 20 30
50
ローカル変数とグローバル変数
ローカルコマンドを使用して、変数を関数に制限します
。つまり、ローカル変数は現在の関数でのみ有効であり、他の関数では無効です。
[root@rain opt]#vim demo23.sh
#!/bin/bash
abc () {
echo "函数内的未经过local的$i"
local i
i=6
echo "函数内的是$i"
}
i=9
abc
echo "函数外面的$i"
結果:
ローカル攻撃:
4.再帰(自分自身を呼び出します)
初回:合計値は、jc 2の値に3を掛けた値です。
この時点で、入力値は元の3から2に変更されています。上記の手順をもう一度繰り返します。
二度目:JC 1の合計値が2と3、乗算される
1 2 3
5.関数ライブラリ
これは、メイン実行コードと一般スクリプトの定義済み関数部分を互いに分離し、定義済み関数部分を同じスクリプトにまとめることです。特定の実行中に、関数セットのスクリプトファイルを直接呼び出すだけで済みます。Javaでのオブジェクト指向プログラミングの視覚的感覚に少し似ています。
ここでは、足し算、引き算、掛け算、割り算の4つの関数のライブラリを作成しました。
#!/bin/bash
#函数库
jia(){
result=$[ $1 + $2 ]
echo "$result"
}
jian(){
result=$[ $1 - $2 ]
echo "$result"
}
cheng(){
result=$[ $1 * $2 ]
echo "$result"
}
chu(){
if [ $2 -ne 0 ]
then
result=$[ $1 / $2 ]
echo "$result"
else
echo"除法所输入不能为0"
fi
}
ここでスクリプトを実行し、関数ライブラリを呼び出して計算を完了します。
#!/bin/bash
. /opt/ku.sh
#加减乘除
read -p "请输入第一个数字" f
read -p "请输入第二个数字" s
result1=`jia $f $s`
result2=`jian $f $s`
result3=`cheng $f $s`
result4=`chu $f $s`
echo "第一个数字与第二个数字的和为:$result1"
echo "第一个数字与第二个数字的差为:$result2"
echo "第一个数字与第二个数字的积为:$result3"
echo "第一个数字与第二个数字的商为:$result4"
結果: