青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

興海北路

---男兒仗劍自橫行
<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

統(tǒng)計(jì)

  • 隨筆 - 85
  • 文章 - 0
  • 評(píng)論 - 17
  • 引用 - 0

常用鏈接

留言簿(6)

隨筆分類

隨筆檔案

收藏夾

全是知識(shí)啊

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

幾個(gè)shell程序設(shè)計(jì)小知識(shí)(shell常識(shí)部分)
來(lái)源:http://www.chinaunix.net/jh/24/628479.html

引用:一、用戶登陸進(jìn)入系統(tǒng)后的系統(tǒng)環(huán)境變量:
$HOME 使用者自己的目錄
$PATH 執(zhí)行命令時(shí)所搜尋的目錄
$TZ 時(shí)區(qū)
$MAILCHECK 每隔多少秒檢查是否有新的信件
$PS1 在命令列時(shí)的提示號(hào)
$PS2 當(dāng)命令尚未打完時(shí),Shell 要求再輸入時(shí)的提示號(hào)
$MANPATH man 指令的搜尋路徑

二、特殊變量:

$0 這個(gè)程序的執(zhí)行名字
$n 這個(gè)程序的第n個(gè)參數(shù)值,n=1..9
$* 這個(gè)程序的所有參數(shù)
$# 這個(gè)程序的參數(shù)個(gè)數(shù)
$$ 這個(gè)程序的PID
$! 執(zhí)行上一個(gè)指令的PID
$? 執(zhí)行上一個(gè)指令的返回值

三、shell中的變?cè)?
* 任意字符串
? 一個(gè)任意字符
[abc] a, b, c三者中之一
[a-n] 從a到n的任一字符

四、幾個(gè)特殊字符表示

\b 退回
\c 打印一行時(shí)沒有換行符 這個(gè)我們經(jīng)常會(huì)用到
\f 換頁(yè)
\r 回車
\t 制表
\v 垂直制表
\\ 反斜線本身

五、判斷文件的屬性

格式:-操作符 filename
-e 文件存在返回1, 否則返回0
-r 文件可讀返回1,否則返回0
-w 文件可寫返回1,否則返回0
-x 文件可執(zhí)行返回1,否則返回0
-o 文件屬于用戶本人返回1, 否則返回0
-z 文件長(zhǎng)度為0返回1, 否則返回0.
-f 文件為普通文件返回1, 否則返回0
-d 文件為目錄文件時(shí)返回1, 否則返回0

六、測(cè)試字符串
字符串1 = 字符串2 當(dāng)兩個(gè)字串相等時(shí)為真
字符串1 != 字符串2 當(dāng)兩個(gè)字串不等時(shí)為真
-n 字符串      當(dāng)字符串的長(zhǎng)度大于0時(shí)為真
-z 字符串      當(dāng)字符串的長(zhǎng)度為0時(shí)為真
字符串       當(dāng)串字符串為非空時(shí)為真

七、測(cè)試兩個(gè)整數(shù)關(guān)系
數(shù)字1 -eq 數(shù)字2     兩數(shù)相等為真
數(shù)字1 -ne 數(shù)字2     兩數(shù)不等為真
數(shù)字1 -gt 數(shù)字2     數(shù)字1大于數(shù)字2為真
數(shù)字1 -ge 數(shù)字2     數(shù)字1大于等于數(shù)字2為真
數(shù)字1 -lt 數(shù)字2     數(shù)字1小于數(shù)字2為真
數(shù)字1 -le 數(shù)字2     數(shù)字1小于等于數(shù)字2為真

八、邏輯測(cè)試
-a         與
-o        或
!        非



今天介紹shell特殊字符的引用
===============================
shell中的特殊字符有

1、$ 美元符
2、\ 反斜杠
3、` 反引號(hào)
4、" 雙引號(hào)
5、< ,>,*,?,[,]

下面我一一舉列說(shuō)明
一、$符號(hào)
1、echo $? 顯示的是上一條指令退出狀態(tài)
2、echo "$?" 效果同上
3、echo '$?' 顯示的是$?
4、echo \$? 顯示的是$?
5、echo "\$?" 顯示的是$?

  大家可能已經(jīng)看出 $符號(hào)在雙引號(hào)中具有特殊意義 雙引號(hào)對(duì)$符號(hào)不起作用
而單引號(hào)可以將特殊字符的的特殊意義屏蔽掉,使其能顯示為字符本身,反斜
杠也可以將特殊字符的特殊含義屏蔽掉,使特殊字符失去特殊含義。

二、\ 反斜杠
  反斜杠的作用是將特殊符號(hào)字符的特殊含義屏蔽掉,使其還是原字符
A=1234
echo \$A 顯示為$A 如果不加\將顯示為1234
echo \` 顯示為`
echo \" 顯示為雙引號(hào)
echo \\ 顯示為\

三、` 反引號(hào)
  反引號(hào)的功能是命令替換,將反引號(hào)中的字符串做為命令來(lái)執(zhí)行,我們?cè)谟胹hell編程時(shí)經(jīng)常用的到 將系統(tǒng)命令的執(zhí)行結(jié)果賦給一個(gè)變量

A=`date`
echo $A 顯示的不是date而是當(dāng)時(shí)的時(shí)間串
比如有一文件A的內(nèi)容如下 
ABCDEFG
1234456
abcdefg

B=`cat A|grep 234` # 檢索文件A中含有字符串234的行
echo $B 將顯示為1234456
echo "$B" 將顯示為什么?
echo "\$B" 將顯示為什么?讀者自己試試

四、" 雙引號(hào)
  在系統(tǒng)中有些特殊字符,為避免引用這些特殊字符 往往用雙引號(hào)或單引號(hào)將這些特殊字符引起來(lái),使其不具有特殊含義。
  但有一部分特殊字符在引號(hào)中還是具有特殊含義,用雙引號(hào)引起來(lái)是不起作用的。本文中所列的前四個(gè)特殊字符在雙引號(hào)中還是特殊字符。為了使其不具有特殊含義一是用單引號(hào)引進(jìn)來(lái)二是用\反斜線使其失去作用。

  比如我們想原樣輸出這些特殊字符

echo """
echo "$"
echo "\"
echo "`"
   以上不是你所期望的結(jié)果,因?yàn)殡p引號(hào)對(duì)它們不起作用,你只能這樣才能輸出這些特殊字符的原形
echo '"'
echo '$'
echo '\'
echo '`'

echo "\""
echo "\$"
echo "\\"
echo "\`"
將分別顯示為 " $ \ `
五、其它特殊字符
  大家注意到 除了前四個(gè)特殊字符外 我將其它的特殊字符都放在一塊,這是因?yàn)榍八膫€(gè)特殊字符在雙引號(hào)中還是具有特殊含義,所以單獨(dú)拿出來(lái)講,除此以外的特殊字符如果你要輸出這些特殊字符的原形,你就可以用雙引號(hào)或單引號(hào)引起來(lái)使其失去特殊含義。
< ,>,*,?,[,]對(duì)shell有特殊含義 但你可以用雙引號(hào)引起來(lái)輸入這些原形

  講了這么多大家是不是已經(jīng)注意到所有的特殊字符在單引號(hào)中失去特殊含義,如果你要輸出特殊字符原形但又記不清那些特殊字符在雙引號(hào)中不能輸出原形,建議你干脆用單引號(hào)引起來(lái)。

今天介紹條件測(cè)試語(yǔ)句

一、if 條件語(yǔ)句 
格式:
if 條件表達(dá)式
then #當(dāng)條件為真時(shí)執(zhí)行以下語(yǔ)句
命令列表
else #為假時(shí)執(zhí)行以下語(yǔ)句
命令列表
fi

if 語(yǔ)句也可以嵌套使用

if 條件表達(dá)式1
then
if 條件表達(dá)式2
then
命令列表
else
if 條件表達(dá)式3
then
命令列表
else
命令列表
fi
fi
else
命令列表
fi

你可以進(jìn)行多層嵌套 一個(gè)if語(yǔ)句一定要跟一個(gè)fi 表示該層條件結(jié)束  否則會(huì)造成語(yǔ)法錯(cuò)誤
結(jié)合前面講的 舉例如下:
這里先講一個(gè)條件語(yǔ)句中用到的命令test 表示測(cè)試test后面的條件是否為真

if test -f "$1"
then
lpr $1
else
if test -d "$1"
then
cd $1
lpr $1
else
echo "$1不是文件或目錄"
fi
fi

以上的例子還可以改成如下所示

if test -f "$1"
then
lpr $1
elif test -d "$1" #elif 同else if
then
(cd $1;lpr $1)
else
echo "$1不是文件或目錄"
fi

以上的例子不知您是否看懂是什么意思嗎?
假如我們現(xiàn)在將這個(gè)例子保存為prfile
chmod +x prfile
執(zhí)行剛才的程序
./prfile aaa

這個(gè)例子是檢查你的輸入的參數(shù)是否是一個(gè)文件 如果是就打印 如果是一個(gè)目錄 先轉(zhuǎn)目錄再打印 如果即不是文件也不是目錄給出提示

二、多重條件測(cè)試語(yǔ)句case
格式:
case 字串 in
模式) 命令列表;;
模式) 命令列表;;
....
esac

多重條件語(yǔ)句是以case 開始以esac結(jié)束 中間可以有多個(gè)條件列表 功能是測(cè)試字串和和里面的模式有沒有匹配的,有就執(zhí)行里面的命令列表 模式也可以是*號(hào) 表示任意字串,每個(gè)模式里面的最后要心;;雙引號(hào)結(jié)束,否則會(huì)發(fā)生語(yǔ)法錯(cuò)誤。

現(xiàn)舉例如下:

case $1 in
*.c)
cc $1
;;
*.txt)
lpr $1
;;
*)
echo "未知的類型"
esac

假如將以上內(nèi)容保存在文件abc中

chmod +x abc
執(zhí)行 ./abc a.c   將會(huì)對(duì)文件a.c進(jìn)行編譯
執(zhí)行 ./abc readme.txt 將會(huì)把文件通過(guò)打印機(jī)
假如我將以上內(nèi)容改一下,你是否會(huì)知道它的執(zhí)行結(jié)果?

case $1 in
*)
cc $1
;;
*.txt)
lpr $1
;;
*.c)
echo "未知的類型"
esac

今天介紹循環(huán)語(yǔ)句
一. while 循環(huán)
while 命令格式

while 條件表
do
命令表
done

執(zhí)行過(guò)程

shell首先執(zhí)行條件表,如果條件表的最后一條語(yǔ)句的退出狀態(tài)為零,則執(zhí)行盾環(huán)體內(nèi)的命令
表,執(zhí)行完后,再檢查條件表,如果退出狀態(tài)為零將繼續(xù)執(zhí)行,如此循環(huán)往復(fù)直到條件表的
最后一條語(yǔ)句的退出狀態(tài)非零. 退出狀態(tài)為零就是條件為真True.

舉例說(shuō)明 假如shell文件的內(nèi)容如下:

Sum=0
i=0
while true #true是系統(tǒng)的關(guān)鍵詞 表示真
do
i=`expr $i + 1`
Sum=`expr $Sum + $i`
if [ $i = "100" ]
then
break;
fi
done
echo $i $Sum
最后這個(gè)程序顯示的是 100 5050
這個(gè)程序的運(yùn)算就是將1到100加起來(lái)

下面將這個(gè)程序再改動(dòng)一下


Sum=0
i=0
while [ $i != "100" ]
do
i=`expr $i + 1`
Sum=`expr $Sum + $i`
done
echo $i $Sum

改動(dòng)后的程序運(yùn)算結(jié)果和上面是一樣 但程序比上面的要簡(jiǎn)練

在這個(gè)循環(huán)中還可以以u(píng)ntil做為測(cè)試條件 它正好與while測(cè)試的條件相反,也就是當(dāng)條件為假時(shí)將繼續(xù)執(zhí)行循環(huán)體內(nèi)的語(yǔ)句,否則就退出循環(huán)體,下面還用這個(gè)例子.


Sum=0
i=0
until [ $i = "100" ]
do
i=`expr $i + 1`
Sum=`expr $Sum + $i`
done
echo $i $Sum
當(dāng)i不等于100時(shí)循環(huán) 就是當(dāng)條件為假時(shí)循環(huán),否則就退出,而第一個(gè)例子是當(dāng)i不等于100
時(shí)循環(huán),也就是測(cè)試條件為真時(shí)循環(huán).

二.for 循環(huán)

命令格式:
for 變量 in 名字列表
do
命令列表
done

這里的名字列表是一個(gè)由空格分隔的字符串列表,shell在執(zhí)行for循環(huán)時(shí)每次依次從名字表
中取出一個(gè)字符串賦給循環(huán)變量作為變量的值.
在寫for語(yǔ)句時(shí),也可以省略in 名字列表部分,這表示用當(dāng)前的位置參數(shù)來(lái)代替這時(shí)的名
字列表.
下面舉個(gè)例子
比如在你的電腦中有兩個(gè)目錄,一個(gè)是aa,一個(gè)是bb在這兩個(gè)目錄中有5個(gè)相同的文件,但其
中一個(gè)目錄中的一個(gè)或多個(gè)文件剛剛修改過(guò),現(xiàn)在我忘記剛才改的是那幾個(gè)文件 了,那么我靠梢員冉弦幌掄飭礁瞿柯嫉奈募橢懶?程序如下:

for File in a1 a2 a3 a4 a5
do
diff aa/$File bb/$File
done

下面再舉一個(gè)不帶名字列表的例子

for File
do
echo $Filw
done

文件內(nèi)容保存在a.sh中 并可執(zhí)行
我們?cè)趫?zhí)行這個(gè)shell程序時(shí)命令行如下:
a.sh a1 a2 a3 a4 a5
執(zhí)行結(jié)果如下:
a1
a2
a3
a4
a5
大家從這個(gè)例子中可以看到命令行的參數(shù)被逐一讀入一次
三.循環(huán)控制語(yǔ)句
break 命令不執(zhí)行當(dāng)前循環(huán)體內(nèi)break下面的語(yǔ)句從當(dāng)前循環(huán)退出.
continue 命令是程序在本循體內(nèi)忽略下面的語(yǔ)句,從循環(huán)頭開始執(zhí)行.

一,命令組合:圓括號(hào)和花括號(hào)
shell中有兩種方法將命令組合在一起:圓括號(hào)和花括號(hào).圓括號(hào)使shell創(chuàng)建一個(gè)子shell
來(lái)讀取并執(zhí)行括起來(lái)的名命令.左括號(hào)和右括號(hào)不論出現(xiàn)在命令行中的什么位置,shell都會(huì)
認(rèn)為它們具有特殊的組合意義的.只有用雙引號(hào)將它們括起來(lái)引用,才表示圓括號(hào)或花括號(hào)
的原義.例如:

echo a(b)
將出現(xiàn)語(yǔ)法上的錯(cuò)誤,要想輸出a(b)字符串 只能括起來(lái)
echo "a(b)"
或echo a"("b")"
這樣才能被shell正確解釋.
利用組合命令有什么作用呢?
一,用圓括號(hào)組合命令
圓括號(hào)的組合命令可以創(chuàng)建子進(jìn)程運(yùn)行組合程序,建立子進(jìn)程的功能是很有用的,因?yàn)?
子shell在組合命令中的種種操作都不會(huì)影響到當(dāng)前shell的各變量的值.
例如:
子進(jìn)程在執(zhí)行組合命令時(shí)改變了工作目錄,并在新的工作目錄下執(zhí)行一系例命令,執(zhí)行
完后它可以不必返回原工作目錄,因?yàn)樽舆M(jìn)程工作目錄的改變不會(huì)影響到當(dāng)前工作目錄.

創(chuàng)建子進(jìn)程后將當(dāng)前的環(huán)境也同樣傳給子shell,當(dāng)前shell中用export輸出到環(huán)境中的
各變量在子shell中同樣有效.


花括號(hào)也可以將命令組合在一起.左 右花括號(hào)只有作為一條命令的第一個(gè)字出現(xiàn)時(shí),
shell才它們含有特殊含義.
與圓括號(hào)不同的是花括號(hào)并不創(chuàng)建子shell,只是由當(dāng)前的shell來(lái)讀取并執(zhí)行括起來(lái)的
命令.有時(shí)用戶希望使用一組命令的順序輸出作為另一組命令的輸入,此時(shí)用花括號(hào)是很方
便的.
不論是用圓括號(hào)不是花括號(hào),退出狀態(tài)都是等于最后一條括起來(lái)的命令的退出狀態(tài).


二,可以在當(dāng)前shell中執(zhí)行的命令

用戶在使用shell時(shí)一定要了解那些是可以在當(dāng)前shell中執(zhí)行的命令 那些不可以
可以在當(dāng)前shell中執(zhí)行的命令有:

break case cd continue
echo eval exec exit
export for if read
readonly return set shift
test times trap umask
until wait while
: {}

posted on 2008-03-14 14:03 隨意門 閱讀(212) 評(píng)論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品高清免费在线观看| 久久久99精品免费观看不卡| 国产精品高清在线| 欧美极品一区| 欧美成人免费网站| 免费观看一区| 欧美a级片网站| 欧美激情视频在线播放| 欧美精品一区二区三| 欧美日韩国产精品专区| 国产精品白丝黑袜喷水久久久| 欧美视频免费看| 国产欧美一区二区三区在线老狼| 国产视频精品xxxx| 亚洲国产99| 一级日韩一区在线观看| 亚洲午夜一区二区| 久久av一区二区三区漫画| 久久精品1区| 亚洲电影网站| 亚洲国产精品专区久久| 亚洲美女在线看| 亚洲免费在线观看视频| 久久精品国产99国产精品澳门| 欧美+亚洲+精品+三区| 欧美视频在线一区| 韩国一区二区三区在线观看| 99视频精品全部免费在线| 欧美在线观看一二区| 免费看精品久久片| 在线亚洲精品| 欧美不卡在线| 国产一区二区三区在线观看精品| 99视频有精品| 欧美日在线观看| 国产一区二区电影在线观看| 亚洲精品一区二区在线| 亚洲免费一区二区| 亚洲第一视频网站| 亚洲一级黄色片| 欧美成人精品在线播放| 国产精品区一区二区三| 亚洲免费观看高清在线观看| 久久久噜噜噜久久中文字免| 99精品久久| 欧美大片免费久久精品三p| 国产亚洲精品bv在线观看| 亚洲网站啪啪| 亚洲激情国产精品| 老司机一区二区三区| 国产又爽又黄的激情精品视频| 亚洲女人av| 一本大道久久精品懂色aⅴ| 国产精品视频一二三| 久久久夜精品| 伊人久久综合97精品| 亚洲欧美日韩一区二区| 亚洲精品国久久99热| 老牛嫩草一区二区三区日本| 国产一区二区三区在线观看网站 | 欧美亚洲日本一区| 欧美日韩一区免费| 一本色道久久综合狠狠躁篇怎么玩| 蜜臀久久99精品久久久画质超高清 | 亚洲综合久久久久| 日韩视频一区二区在线观看| 欧美大片免费| 亚洲伦伦在线| 亚洲裸体俱乐部裸体舞表演av| 欧美高清视频一区二区| 日韩视频不卡| 99精品视频免费全部在线| 欧美日韩国产综合视频在线| aa级大片欧美| 亚洲视频在线免费观看| 国产精品稀缺呦系列在线| 午夜精品在线| 羞羞色国产精品| 激情久久一区| 亚洲国产精品成人一区二区| 欧美精品乱码久久久久久按摩| 日韩性生活视频| 亚洲视屏一区| 国产日韩精品综合网站| 久久蜜桃精品| 欧美成人免费播放| 欧美日韩精品一区| 亚洲网站在线| 久久高清福利视频| 亚洲国产欧美一区二区三区同亚洲 | 国产精品毛片大码女人| 欧美在线播放一区| 美女诱惑一区| 亚洲自拍偷拍麻豆| 久久国产婷婷国产香蕉| 亚洲精品影视在线观看| 亚洲综合色丁香婷婷六月图片| 黄色成人av网站| 亚洲精品久久久久中文字幕欢迎你 | 亚洲视频日本| 狠狠色伊人亚洲综合成人| 亚洲国产精品va在看黑人| 欧美性天天影院| 欧美不卡高清| 国产精品毛片a∨一区二区三区| 久久精品一区中文字幕| 欧美高清日韩| 另类尿喷潮videofree| 欧美日本三级| 蜜桃伊人久久| 国产伦精品一区二区三区免费 | 亚洲免费观看在线观看| 国产日韩欧美高清| 亚洲日本无吗高清不卡| 国产一区二区三区四区hd| 亚洲美女在线国产| 亚洲国产免费| 久久久久www| 欧美一区二区视频在线观看2020| 欧美电影免费观看大全| 久久综合色婷婷| 国产精品天天看| 亚洲巨乳在线| 亚洲美洲欧洲综合国产一区| 久久国产精品毛片| 午夜免费久久久久| 欧美视频亚洲视频| 最新日韩在线视频| 亚洲春色另类小说| 欧美一区二区日韩一区二区| 一区二区三欧美| 牛牛精品成人免费视频| 久久久亚洲影院你懂的| 国产亚洲精品久久久久动| 亚洲桃花岛网站| 亚洲校园激情| 亚洲在线免费视频| 一本色道久久88综合亚洲精品ⅰ | 欧美影院成年免费版| 欧美亚州一区二区三区| 91久久夜色精品国产九色| 亚洲国产日韩欧美在线图片| 久久精品国产亚洲aⅴ| 久久精品国产2020观看福利| 国产乱码精品1区2区3区| 亚洲一区二区三区在线播放| 亚洲欧美视频一区| 国产久一道中文一区| 午夜视频久久久| 久久精品亚洲国产奇米99| 国产日韩欧美在线播放| 欧美亚洲视频| 麻豆亚洲精品| 亚洲国产日韩欧美在线99| 欧美电影免费网站| 日韩五码在线| 午夜久久电影网| 精品91视频| 欧美精品久久久久久久久久| 日韩午夜在线| 欧美尤物巨大精品爽| 黄色另类av| 欧美激情中文不卡| 亚洲手机成人高清视频| 久久综合激情| 日韩网站在线观看| 国产精品―色哟哟| 久久网站免费| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 影音先锋日韩精品| 欧美极品影院| 午夜免费日韩视频| 欧美激情中文字幕一区二区| 亚洲夜间福利| 在线观看欧美| 欧美天堂亚洲电影院在线观看 | 国内揄拍国内精品久久| 狂野欧美一区| 中文精品在线| 欧美不卡激情三级在线观看| 亚洲视频你懂的| 黑人中文字幕一区二区三区| 欧美另类人妖| 久久久久久久久伊人| 一本久道久久综合狠狠爱| 裸体歌舞表演一区二区| 亚洲午夜羞羞片| 91久久国产综合久久| 国产伦精品一区二区三区视频黑人| 久久一区二区三区国产精品 | 欧美精品123区| 亚洲欧美日韩综合aⅴ视频| 99精品国产在热久久婷婷| 国产精品视频99| 欧美激情亚洲综合一区| 欧美一区二区三区视频在线| 亚洲精品日韩欧美| 免费黄网站欧美| 久久精品噜噜噜成人av农村| 夜夜嗨av一区二区三区网页|