新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > linux shell 腳本入門

linux shell 腳本入門

作者: 時間:2007-04-24 來源:網絡 收藏

本文引用地址:http://2s4d.com/article/258223.htm

4.loop

loop表達式:
while ...; do
....
done
while-loop 將運行直到表達式測試為真。will run while the expression that we test for is true.
關鍵字break 用來跳出循環(huán)。而關鍵字”continue”用來不執(zhí)行余下的部分而直接跳到下一個循環(huán)。

for-loop表達式查看一個字符串列表 (字符串用空格分隔) 然后將其賦給一個變量:
for var in ....; do
....
done
在下面的例子中,將分別打印ABC到屏幕上:
#!/bin/sh
for var in A B C ; do
echo var is $var
done
下面是一個更為有用的腳本showrpm,其功能是打印一些RPM包的統(tǒng)計信息:
#!/bin/sh
# list a content summary of a number of RPM packages
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm
for rpmpackage in $*; do
if [ -r $rpmpackage ];then
echo =============== $rpmpackage ==============
rpm -qi -p $rpmpackage
else
echo ERROR: cannot read file $rpmpackage
fi
done
這里出現了第二個特殊的變量$*,該變量包含了所有輸入的命令行參數值。
如果您運行showrpm openssh.rpm w3m.rpm webgrep.rpm
此時 $* 包含了 3 個字符串,即openssh.rpm, w3m.rpm and webgrep.rpm.


5. 引號
在向程序傳遞任何參數之前,程序會擴展通配符和變量。這里所謂擴展的意思是程序會把通配符
(比如*)替換成合適的文件名,它變量替換成變量值。為了防 止程序作這種替換,您可以使用
引號:讓我們來看一個例子,假設在當前目錄下有一些文件,兩個jpg文件, mail.jpg 和tux.jpg。
1.2 編譯SHELL腳本
#ch#!/bin/sh mod +x filename
cho *.jpg ∪緩?,您可裔jü淙耄?./filename 來執(zhí)行您的腳本。
這將打印出mail.jpg tux.jpg的結果。
引號 (單引號和雙引號) 將防止這種通配符擴展:
#!/bin/sh
echo *.jpg
echo '*.jpg'
這將打印*.jpg 兩次。
單引號更嚴格一些。它可以防止任何變量擴展。雙引號可以防止通配符擴展但允許變量擴展。
#!/bin/sh
echo $SHELL
echo $SHELL
echo '$SHELL'
運行結果為:
/bin/bash
/bin/bash
$SHELL
最后,還有一種防止這種擴展的方法,那就是使用轉義字符——反斜桿:
echo *.jpg
echo $SHELL
這將輸出:
*.jpg
$SHELL



評論


相關推薦

技術專區(qū)

關閉