GB | BIG5
|
| 首頁 > 編程技術 > Shell > 正文 |
 |
| Linux程式設計-11.Shell Script(bash)--(5)控制圈for |
| http://www.openchess.org/noitatsko/programming/ (2001-05-25 12:10:00) |
示了幾個簡單的Shell Script,相信您應該對Shell Script有點概念了。現在我們開始來仔細研究一些較高等的Shell Script寫作。一些進一步的說明,例如"$"、">"、"<"、">>"、"1>"、"2>"符號的使用,會在稍後解釋。
--------------------------------------------------------------------------------
for name [ in word; ] do list ; done
控制圈。
word是一序列的字,for會將word中的個別字展開,然後設定到name上面。list是一序列的工作。如果[in word;]省略掉,那麼name將會被設定為Script後面所加的參數。
--------------------------------------------------------------------------------
例一:
#!/bin/sh
for i in a b c d e f ; do
echo $i
done
它將會顯示出a到f。
--------------------------------------------------------------------------------
例二: 另一種用法,A-Z
#!/bin/sh
WORD="a b c d e f g h i j l m n o p q r s t u v w x y z"
for i in $WORD ; do
echo $i
done
這個Script將會顯示a到z。
--------------------------------------------------------------------------------
例三 : 修改副檔名
如果您有許多的.txt檔想要改名成.doc檔,您不需要一個一個來。
#!/bin/sh
FILES=`ls /txt/*.txt`
for txt in $FILES ; do
doc=`echo $txt | sed "s/.txt/.doc/"`
mv $txt $doc
done
這樣可以將*.txt檔修改成*.doc檔。
--------------------------------------------------------------------------------
例四 : meow
#!/bin/sh
# Filename : meow
for i ; do
cat $i
done
當您輸入"meow file1 file2 ..."時,其作用就跟"cat file1 file2 ..."一樣。
--------------------------------------------------------------------------------
例五 : listbin
#!/bin/sh
# Filename : listbin
for i in /bin/* ; do
echo $i
done
當您輸入"listbin"時,其作用就跟"ls /bin/*"一樣。
--------------------------------------------------------------------------------
例六 : /etc/rc.d/rc
拿一個實際的例來說,Red Hat的/etc/rc.d/rc的啟動程式中的一個片斷。
for i in /etc/rc.d/rc$runlevel.d/S*; do
# Check if the script is there.
[ ! -f $i ] && continue
# Check if the subsystem is already up.
subsys=${i#/etc/rc.d/rc$runlevel.d/S??}
[ -f /var/lock/subsys/$subsys ] || \
[ -f /var/lock/subsys/${subsys}.init ] && continue
# Bring the subsystem up.
$i start
done
這個例中,它找出/etc/rc.d/rcX.d/S*所有檔案,檢查它是否存在,然後一一執行。
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
Linux程式設計-31.工作群資訊管理(grp) (2001-05-27 22:08:00) Linux程式設計-30.使用者資訊管理(pwd) (2001-05-27 21:04:00) Linux程式設計-29.時間處理 (2001-05-27 20:10:01) Linux程式設計-28.GNU Make (2001-05-27 19:00:00) Linux程式設計-27.GNU Debugger (2001-05-27 18:08:01) Linux程式設計-26.PIPE (2001-05-27 17:04:00) Linux程式設計-25.Message Queues (2001-05-27 16:10:00) Linux程式設計-24.Semaphores (2001-05-27 15:00:00) Linux程式設計-23.共享記憶體(Shared Memory) (2001-05-27 14:08:00) Linux程式設計-20.getopt (2001-05-27 13:04:00)
|
===更多相關=== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |