shell系統函式和流程控制

轻棠發表於2024-04-18

image

系統函式:

1、簡單示例:

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

basename:

  • 基本語法:
    basename [string/pathname] [suffix]
    (功能描述:basename命令會刪掉所有的字首包括最後一個('/')字元,然後將左右字元顯示出來。
    basename可以理解為路徑的檔名稱。
  • 選項:
    suffix 為字尾,如果suffix被指定了,basename會將pathname中的suffix去掉。
    示例:
點選檢視程式碼
#!/bin/bash
echo '======== basename與dirname ========'
echo home name: $(basename $0)
echo /home/xiaohu name: $(cd $(dirname $0); pwd)

流程控制

for迴圈結構

語法1:

點選檢視程式碼
#!/bin/bash
for ((初始值; 迴圈控制條件; 變數變化))
do
	程式
done
#程式結束
for迴圈示例指令碼:

✔示範:

點選檢視程式碼
#!/bin/bash
for ((i=1; i <= $1; i++))
do
	sum=$[ sum + $i ]
done
echo $sum

迴圈控制條件錯誤會導致死迴圈或指令碼執行失敗:

❌示範:

點選檢視程式碼
#!/bin/bash
for (( i=0; i <= $i; i++))
do
	echo $[ $sum + $i ]
done
echo $sum

語法2:

點選檢視程式碼
#!/bin/bash
for 變數 in 引數1 引數2 引數3........
do
	程式
done

示例1:

點選檢視程式碼
#!/bin/bash
for AO in 香蕉 燒餅 瓜子
do
	echo $AO
done

示例2:

點選檢視程式碼
#!/bin/bash
for i in (1...100)
do
	sum=$[$sum+$i]
done
echo $sum

以上內容是個人日常學內容筆記,僅供參考,如有雷同實屬巧合,歡迎評論指教。

相關文章