shell指令碼while迴圈、read讀取控制檯輸入與函式

轻棠發表於2024-04-20

image

宣告:
以下為個人筆記,內容不完全正確,請謹慎參考。

while迴圈

while迴圈結構
while [條件判斷]
do
程式
done
指令碼示例:

點選檢視程式碼
#!/bin/bash
while [ $a -le $1]
do
	sum=$[ $sum + $a ]
done
echo $sum

簡易寫法:

點選檢視程式碼
#!/bin/bash
a=1
while [ $a -le $1 ]
do
	let sum+=a
	let a++
done
echo $sum

read 讀取控制檯輸入
基本語法:
read(選項)(引數)
1、選項
-p: 指定讀取值時的字元;
-t: 指定讀取值等待時間(秒->s)如果-t 不加表示一直等待。
2、引數
變數: 指定讀取值的變數名
示例:

點選檢視程式碼
#!/bin/bash
read -t -p "請在5s內輸入您的相關個人資訊,超時將退出。" AS
echo $AS

函式

先舉一個小栗子:

點選檢視程式碼
#!/bin/bash
filename="$1"_log$(datename +%s)
echo $filename

1.1 basename
基本語法

basename [string/patename] [suffix]
功能描述:basename命令會刪掉所有的字首包括最後一個('/')字元,然後將字串顯示出來。
basename可理解為去路徑的檔名
選項:
suffix為字尾,如果suffix被指定了,basename會將pathname中的suffix去掉。
指令碼示例:

點選檢視程式碼
#!/bin/bash
echo '========== $n ==========='
echo /home name: $(basename $0 .sh)
echo /home/xiaohu name: $(cd 
$(dirname $0); pwd)
echo op name: $1
echo op name: $2

自定義函式:
基本語法:
[function] funname[0]
{
ACTION
[return int;]
}
技巧:
1、必須在呼叫函式地方之前,先宣告函式,shell指令碼是否在逐步執行,不會像其他語言一樣先編譯。
2、函式返回值,只能同歸$?變數獲得,可以顯示加: return返回。
如果不加,將以最後一條命令執行結果,作為返回值。renturn[0~255]
指令碼示例:

點選檢視程式碼
#!/bin/bash
function add(){
		s=$($1 + $2)
			echo $s
}

echo '=========== 呼叫引數 ============'
read -p "請輸入第一個整數:" a
read -p "請輸入第二個整數: " b

echo '=============== 傳參 ========='
sum=$[add $a $b]
echo "和:"$sum
echo "和的平方:"$[$sum * $sum]

相關文章