Linux Shell 上常用的 for in 迴圈結構,可以幫忙很多工作。
----
for in 迴圈及結構
----
# 帶入變數內容的迴圈,自訂字串
[mtchang@c7 linux_shell]$ vim for.sh
#!/bin/bash
for VAR in file1 file2 file3
do
echo $VAR
done
# 設定可以執行權
[mtchang@c7 linux_shell]$ chmod +x for.sh
# 執行
[mtchang@c7 linux_shell]$ ./for.sh
file1
file2
file3
----
for in 迴圈及結構,搭配程式執行結果
----
# 將某個檔案或是程式執行的結果,帶入 for 迴圈內。
[mtchang@c7 linux_shell]$ head /etc/passwd | cut -f 1 -d:
root
bin
daemon
adm
lp
sync
shutdown
halt
operator
$ 使用 $() 將程式結果變成變數內容
[mtchang@c7 linux_shell]$ cat for_fileread.sh
#!/bin/bash
for VAR in $(head /etc/passwd | cut -f 1 -d:)
do
echo $VAR
done
# 執行
[mtchang@c7 linux_shell]$ ./for_fileread.sh
root
bin
daemon
adm
lp
sync
shutdown
halt
operator
----
for in 進階的新功能
----
# 程式
[mtchang@c7 linux_shell]$ cat for_adv.sh
#!/bin/bash
for i in {1..5}
do
echo "for loop 產生 1-5 目前內容為 $i "
done
echo 'Bash V4.0+ 功能 {START..END..INCREMENT} '
echo "Bash 版本 ${BASH_VERSION}"
for i in {1..12..2}
do
echo "for loop 產生 1-12 目前內容為 $i 間隔為 2"
done
[mtchang@c7 linux_shell]$ chmod +x for_adv.sh
# 執行
[mtchang@c7 linux_shell]$ ./for_adv.sh
for loop 產生 1-5 目前內容為 1
for loop 產生 1-5 目前內容為 2
for loop 產生 1-5 目前內容為 3
for loop 產生 1-5 目前內容為 4
for loop 產生 1-5 目前內容為 5
Bash V4.0+ 功能 {START..END..INCREMENT}
Bash 版本 4.2.46(1)-release
for loop 產生 1-12 目前內容為 1 間隔為 2
for loop 產生 1-12 目前內容為 3 間隔為 2
for loop 產生 1-12 目前內容為 5 間隔為 2
for loop 產生 1-12 目前內容為 7 間隔為 2
for loop 產生 1-12 目前內容為 9 間隔為 2
for loop 產生 1-12 目前內容為 11 間隔為 2
我覺的這個 for in 就可以解決大部份的問題了,其他詳細的可以看這一邊 http://www.cyberciti.biz/faq/bash-for-loop/
沒有留言:
張貼留言