關於shell的for結構的一些小技巧

基本使用

最直觀的 for 語法如下

for name in [in words ...]; do
	commands
done

我們可以利用 for 語法做一個遍歷,例如

#!/bin/bash

for i in {1..10}; do
	echo $i
done

這樣看起來不是很直觀,因此 shell 還提供一些類似高級語言的寫法

for (( exp1; exp2; exp3 )); do
	commands
done

因此上面的腳本可以改寫如下

#!/bin/bash

for (( i = 1; i <= 10; i++ )); do
	echo $i
done

遍歷參數

如果省略了 for 結構語法的 in words ...,那麼表示遍歷腳本參數

#!/bin/bash

for param; do
	echo $param
done

相比於用 shift 命令來遍歷參數,for 結構可以保留原來的參數值不變。

小疑問

使用傳統的 for 語法,只能把變量按1遞增嗎?當然不是。如果你這樣認爲,只能說對 shell 的大括號擴展不瞭解。

#!/bin/bash

# 輸出1到10內的奇數
for i in {1..10..2}; do
	echo $i
done

{1..10..2} 使用shell的大括號擴展語法,最後的..2表示以2遞增。

發佈了50 篇原創文章 · 獲贊 31 · 訪問量 400萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章