亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? unix的批處理 shell script.htm

?? 很好的參考書(shū)
?? HTM
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>UNIX的批處理 Shell Script</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<meta name="Microsoft Border" content="none">
</head>

<body background="../images/waybkgnd.gif" text="#C0C0C0" link="#00FF00" vlink="#C0C0C0">
<font SIZE="2">

<p></font><font size="6" color="#0080FF"><u><strong>UNIX的批處理 Shell Script</strong></u></font></p>

<pre>講師:蔡孟光
———————————————————————————
&lt;&lt;&lt;版權(quán)聲明&gt;&gt;&gt;
本著作物版權(quán)屬於國(guó)立臺(tái)灣大學(xué)電子計(jì)算機(jī)中心。為了推廣網(wǎng)路的使用,除了下列的限
制之外,任何人均可以任何型式復(fù)制或修改這份講義。
一、不得有任何的商業(yè)行為
二、復(fù)制或修改這份講義時(shí),必須將本版權(quán)聲明列入,并注明之
三、國(guó)立臺(tái)灣大學(xué)電子計(jì)算機(jī)中心不對(duì)修改過(guò)後的內(nèi)容負(fù)任何的責(zé)任
———————————————————————————
&lt;&lt;&lt;目錄&gt;&gt;&gt;
□前言
□將文字檔設(shè)為可執(zhí)行的Shell Script
□Script的基本結(jié)構(gòu)及觀念
□Bourne Shell
  一、變數(shù)
  二、執(zhí)行命令
  三、流程控制
□C Shell
  一、變數(shù)
  二、執(zhí)行命令
  三、流程控制</pre>

<pre>□附錄A    expr命令
□附錄B    test命令
</pre>

<pre>□前言</pre>

<pre>    在DOS 中,你可能會(huì)從事一些例行的重覆性工作,此時(shí)你會(huì)將這些重覆性的命令寫(xiě)
成批次檔,只要執(zhí)行這個(gè)批次檔就等於執(zhí)行這些命令。大家會(huì)問(wèn)在UNIX中是否有批次處
理這個(gè)東東,答案是有的。在UNIX中不只有如DOS 的批次處理,它的功能比起DOS 更強(qiáng)
大,相對(duì)地也較復(fù)雜,已經(jīng)和一般的高階語(yǔ)言不相上下。在UNIX中大家都不叫做批次檔
,而叫做Shell Script。</pre>

<pre>    一般而言,Shell Script的地位和其它的可執(zhí)行檔(或命令)是完全相同的,只不
過(guò)Shell Script是以文字檔的方式儲(chǔ)存,而非二進(jìn)位檔。而執(zhí)行Shell Script時(shí),必須
有一個(gè)程式將其內(nèi)容轉(zhuǎn)成一道道的命令執(zhí)行,而這個(gè)程式其實(shí)就是Shell ,這也就是為
什麼我們叫做Shell Script的原因(往後我們稱為Script)。不同Shell 的Script基本
上會(huì)有一些差異,所以我們不能將寫(xiě)給A shell 的Script用B shell 執(zhí)行。而在UNIX中
大家最常使用Bourne Shell以及C Shell ,所以這堂課就介紹這兩種Script的寫(xiě)法。
</pre>

<pre>□將文字檔設(shè)為可執(zhí)行的Shell Script</pre>

<pre>    如果我們已經(jīng)寫(xiě)好Script,如何將其設(shè)成可執(zhí)行檔呢?因?yàn)镾cript其實(shí)是一個(gè)可執(zhí)
行檔,所以必須將其存取權(quán)設(shè)定成可執(zhí)行。我們可以使用下列命令更改存取權(quán):</pre>

<pre>        chmod u+x filename      只有自己可以執(zhí)行,其它人不能執(zhí)行
        chmod ug+x filename     只有自己以及同一群可以執(zhí)行,其它人不能執(zhí)行
        chmod +x filename       所有人都可以執(zhí)行</pre>

<pre>    而我們?nèi)绾沃付ㄊ褂媚且粋€(gè)Shell 來(lái)解釋所寫(xiě)的Script呢?幾種基本的指定方式如
下所述:
1. 如果Script的第一個(gè)非空白字元不是&quot;#&quot;,則它會(huì)使用Bourne Shell。
2. 如果Script的第一個(gè)非空白字元是&quot;#&quot;時(shí),但不以&quot;#!&quot;開(kāi)頭時(shí),則它會(huì)使用C Shell。
3. 如果Script以&quot;#!&quot;開(kāi)頭,則&quot;#!&quot;後面所寫(xiě)的就是所使用的Shell,而且要將整個(gè)路徑
    名稱指出來(lái)。</pre>

<pre>    名稱指出來(lái)。
這里建議使用第三種方式指定Shell ,以確保所執(zhí)行的就是所要的。Bourne Shell的路
徑名稱為/bin/sh ,而C Shell 則為/bin/csh。</pre>

<pre>    &lt;eg&gt;
        1. 使用Bourne Shell
            ┌——————————┐    ┌——————————┐
            │echo enter filename │    │#!/bin/sh           │
            │      .             │ or │      .             │
            │      .             │    │      .             │
            │      .             │    │      .             │
            └——————————┘    └——————————┘</pre>

<pre>        2. 使用C Shell
            ┌——————————┐    ┌——————————┐
            │# C Shell Script    │    │#!/bin/csh          │
            │      .             │    │      .             │
            │      .             │    │      .             │
            │      .             │    │      .             │
            └——————————┘    └——————————┘</pre>

<pre>        3. 使用/etc/perl
            ┌——————————┐
            │#! /etc/perl        │
            │      .             │
            │      .             │
            │      .             │
            └——————————┘</pre>

<pre>    除了在Script內(nèi)指定所使用的Shell 外,你也可以在命令列中強(qiáng)制指定。比如你要
用C Shell 執(zhí)行某個(gè)Script,你可以下這個(gè)命令:</pre>

<pre>        csh filename</pre>

<pre>此時(shí)的Script的存取權(quán)就不一定要為可執(zhí)行檔,其內(nèi)部所指定的Shell 也會(huì)無(wú)效,詳細(xì)
的情形後面會(huì)討論。
</pre>

<pre>□Script的基本結(jié)構(gòu)及觀念</pre>

<pre>    Script是以行為單位,我們所寫(xiě)的Script會(huì)被分解成一行一行來(lái)執(zhí)行。而每一行可
以是命令、注解、或是流程控制指令等。如果某一行尚未完成,可以在行末加上&quot;\&quot; ,
這個(gè)時(shí)候下一行的內(nèi)容就會(huì)接到這一行的後面,成為同一行,如下
        ┌———————————┐
        │echo The message is \ │
        │too long so we have \ │
        │to split it into \    │
        │several lines         │
        └———————————┘
    當(dāng)Script中出現(xiàn)&quot;#&quot; 時(shí),再它後面的同一行文字即為注解,Shell 不會(huì)對(duì)其翻譯。
    在Script中要執(zhí)行一個(gè)命令的方法和在命令列中一樣,你可以前景或背景執(zhí)行,執(zhí)
行命令時(shí)也會(huì)需要設(shè)定一些環(huán)境變數(shù)。
    Script的流程控制和一般高階語(yǔ)言的流程控制沒(méi)有什麼兩樣,也和高階語(yǔ)言一樣有
副程式。這些使得Script的功能更加強(qiáng)大。
    為了達(dá)到與高階語(yǔ)言相同的效果,我們也可以在Script中設(shè)定變數(shù),如此使Script
成為一個(gè)名付其實(shí)的高階語(yǔ)言。
</pre>

<pre>□Bourne Shell</pre>

<pre>一、變數(shù)</pre>

<pre>    Bourne Shell的變數(shù)型態(tài)只有字串變數(shù),所以要使用數(shù)值運(yùn)算則必須靠外部命令達(dá)
    成目的。而其變數(shù)種類有下列幾種:</pre>

<pre>    1. 使用者變數(shù)
        這是最常使用的變數(shù),我們可以任何不包含空白字元的字串來(lái)當(dāng)做變數(shù)名稱。
        設(shè)定變數(shù)值時(shí)則用下列方式:</pre>

<pre>            var=string</pre>

<pre>        取用變數(shù)時(shí)則在變數(shù)名稱前加上一&quot;$&quot; 號(hào)。</pre>

<pre>        &lt;eg&gt;
            ┌———————┐
            │name=Tom      │
            │echo name     │
            │echo $name    │
            └———————┘
            結(jié)果如下:
            name
            Tom</pre>

<pre>    2. 系統(tǒng)變數(shù)(環(huán)境變數(shù))
        和使用者變數(shù)相似,只不過(guò)此種變數(shù)會(huì)將其值傳給其所執(zhí)行的命令。要將一使
        用者變數(shù)設(shè)定為系統(tǒng)變數(shù),只要加上:</pre>

<pre>            export var</pre>

<pre>        &lt;eg&gt;
            ┌———————┐
            │name=Tom      │
            │export name   │
            └———————┘</pre>

<pre>        以下是使用者一進(jìn)入系統(tǒng)之後就已設(shè)定好的系統(tǒng)變數(shù):</pre>

<pre>            $HOME       使用者自己的目錄
            $PATH       執(zhí)行命令時(shí)所搜尋的目錄
            $TZ         時(shí)區(qū)
            $MAILCHECK  每隔多少秒檢查是否有新的信件
            $PS1        在命令列時(shí)的提示號(hào)
            $PS2        當(dāng)命令尚未打完時(shí),Shell 要求再輸入時(shí)的提示號(hào)
            $MANPATH    man 指令的搜尋路徑</pre>

<pre>    3. 唯讀的使用者變數(shù)
        和使用者變數(shù)相似,只不過(guò)這些變數(shù)不能被改變。要將使用者變數(shù)設(shè)成唯讀的
        ,只要加上:</pre>

<pre>            readonly var</pre>

<pre>        而若只打readonly則會(huì)列出所有唯讀的變數(shù)。還有一點(diǎn),系統(tǒng)變數(shù)不可以設(shè)定
        成唯讀的。</pre>

<pre>        &lt;eg&gt;
            ┌———————┐
            │name=Tom      │
            │readonly name │
            │echo $name    │
            │name=John     │
            │readonly      │
            └———————┘
            結(jié)果如下:
            Tom
            name: is read only
            readonly name
            readonly ......</pre>

<pre>    4. 特殊變數(shù)
        有些變數(shù)是一開(kāi)始執(zhí)行Script時(shí)就會(huì)設(shè)定,并且不以加以修改,但我們不叫它
        唯讀的系統(tǒng)變數(shù),而叫它特殊變數(shù)(有些書(shū)會(huì)叫它唯讀的系統(tǒng)變數(shù)),因?yàn)檫@
        些變數(shù)是一執(zhí)行程式時(shí)就有了,況且使用者無(wú)法將一般的系統(tǒng)變數(shù)設(shè)定成唯讀
        的。以下是一些等殊變數(shù):</pre>

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

<pre>        當(dāng)你執(zhí)行這個(gè)程式時(shí)的參數(shù)數(shù)目超過(guò)9 個(gè)時(shí),我們可以使用shift 命令將參數(shù)
        往前移一格,如此即可使用第10個(gè)以後的參數(shù)。除此之外,吾人可以用set 命
        令改變$n及$*,方法如下:</pre>

<pre>            set string</pre>

<pre>        如此$*的值即為string,而分解後則會(huì)放入$n。如果set 命令後面沒(méi)有參數(shù),
        則會(huì)列出所有已經(jīng)設(shè)定的變數(shù)以及其值。</pre>

<pre>        &lt;eg&gt;
            檔名:ex1  參數(shù):this is a test
            ┌———————————┐
            │echo Filename: $0     │
            │echo Arguments: $*    │
            │echo No. of args.: $# │
            │echo 2nd arg.: $2     │
            │shift                 │
            │echo No. of args.: $# │
            │echo 2nd arg.: $2     │
            │set hello, everyone   │
            │echo Arguments: $*    │
            │echo 2nd arg.: $2     │
            └———————————┘
            結(jié)果如下:
            Filename: ex1
            Arguments: this is a test
            No. of args.: 4
            2nd arg.: is
            No. of args.: 3
            2nd arg.: a
            Arguments: hello, everyone
            2nd arg.: everyone</pre>

<pre>    值得一提的是,當(dāng)你想從鍵盤輸入一變數(shù)值時(shí),你可以使用下面的命令:</pre>

<pre>        read var1 var2.....</pre>

<pre>    這時(shí)read會(huì)將一個(gè)字分給一個(gè)變數(shù)。如果輸入的字比變數(shù)還多,最後一個(gè)變數(shù)會(huì)將
    剩下的字當(dāng)成其值。如果輸入的字比變數(shù)還少,則後面的變數(shù)會(huì)設(shè)成空字串。
        如果需要處理數(shù)值運(yùn)算,我們可以使用expr命令。其參數(shù)及輸出列於附錄A。
</pre>

<pre>二、執(zhí)行命令</pre>

<pre>    在Bourne Shell中有五種方法執(zhí)行一個(gè)命令,而這五種方式所產(chǎn)生的果有些許的不
    同。

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲国产一区二区三区| 在线观看日韩av先锋影音电影院| 亚洲图片另类小说| 日韩视频在线永久播放| 99精品视频在线播放观看| 日本视频中文字幕一区二区三区| 国产欧美一区二区精品性色 | 欧美日韩国产一二三| 国产精品综合在线视频| 国产在线视频精品一区| 亚洲一区二区三区三| 中文字幕免费观看一区| 精品日韩成人av| 欧美视频三区在线播放| av成人老司机| 国产成人一区在线| 久久国产免费看| 亚洲va韩国va欧美va| 亚洲欧洲精品一区二区三区| 精品av综合导航| 337p亚洲精品色噜噜| 在线一区二区三区四区五区| 成人在线综合网| 国产成人在线网站| 国产一区二区成人久久免费影院| 日本强好片久久久久久aaa| 一区二区三区欧美在线观看| 国产精品久久久久久久久免费桃花| 久久久亚洲精华液精华液精华液| 欧美一区二区三区免费| 9191久久久久久久久久久| 欧美色区777第一页| 色综合久久久久综合99| 99精品视频免费在线观看| 国产91露脸合集magnet | 欧美三级乱人伦电影| 色视频一区二区| jizz一区二区| 白白色亚洲国产精品| 99视频一区二区三区| 99久久综合99久久综合网站| 成人毛片老司机大片| www.欧美亚洲| 不卡视频在线看| 色狠狠色狠狠综合| 欧美色区777第一页| 91精品国产品国语在线不卡| 欧美一区二区三区在线视频| 日韩一区二区视频| 久久综合久色欧美综合狠狠| 久久综合av免费| 国产精品网友自拍| 国产精品久久久久国产精品日日| 国产精品久久久久aaaa樱花 | 精品一区二区久久久| 激情av综合网| 成人av电影免费观看| 日本韩国一区二区三区视频| 欧美专区亚洲专区| 欧美日韩第一区日日骚| 欧美一区午夜精品| 欧美成人精品高清在线播放| 久久精品视频一区二区三区| 亚洲欧美一区二区在线观看| 亚洲mv在线观看| 久久 天天综合| 99久久er热在这里只有精品15| 色婷婷久久久久swag精品| 欧美精品日韩一本| 精品国产一区久久| 欧美国产一区二区| 一区二区激情视频| 免费观看日韩电影| 成人国产精品免费观看动漫| 欧美丝袜自拍制服另类| 亚洲大型综合色站| 国产在线视频一区二区三区| 97久久超碰精品国产| 7777精品伊人久久久大香线蕉经典版下载 | 欧美亚一区二区| 欧美成人aa大片| 亚洲欧洲无码一区二区三区| 天堂在线亚洲视频| 成人中文字幕在线| 欧美精品aⅴ在线视频| 久久久综合视频| 亚洲一二三专区| 国产高清不卡一区| 欧美三级蜜桃2在线观看| 26uuu欧美| 亚洲国产毛片aaaaa无费看| 久久激五月天综合精品| 一本久久综合亚洲鲁鲁五月天| 日韩一级免费一区| 亚洲精品ww久久久久久p站| 另类小说图片综合网| 色综合天天综合网天天看片| 精品三级av在线| 一区二区三区欧美亚洲| 成人少妇影院yyyy| 日韩一级黄色大片| 亚洲国产欧美在线人成| 国产91丝袜在线播放0| 日韩一区二区三区高清免费看看| 亚洲欧美日韩综合aⅴ视频| 韩国成人在线视频| 4438成人网| 一区二区三区中文字幕精品精品 | 暴力调教一区二区三区| 精品国产免费人成在线观看| 婷婷国产在线综合| 色悠悠亚洲一区二区| 国产精品无遮挡| 国产丶欧美丶日本不卡视频| 日韩一区二区影院| 日韩专区欧美专区| 欧美日韩三级在线| 亚洲午夜精品一区二区三区他趣| 成人高清免费观看| 国产日产欧美一区| 国内精品在线播放| 欧美大片顶级少妇| 开心九九激情九九欧美日韩精美视频电影| 91亚洲精品一区二区乱码| 国产女同互慰高潮91漫画| 黄色日韩三级电影| 精品国产一区二区三区久久影院| 青青草原综合久久大伊人精品优势 | 精品国产乱码久久久久久闺蜜 | 久久国产综合精品| 91麻豆精品国产自产在线| 亚洲国产精品精华液网站| 欧美在线看片a免费观看| 亚洲老妇xxxxxx| 色婷婷av一区二区三区软件| 一区二区在线观看视频在线观看| 一本色道久久综合亚洲精品按摩| 国产精品综合视频| 精品国产乱子伦一区| 久久精品国产77777蜜臀| 欧美一区二区三区免费观看视频| 欧美bbbbb| 日韩免费高清av| 国产精品一区二区三区四区| 国产亲近乱来精品视频| 成人av电影免费在线播放| 成人欧美一区二区三区小说| 91亚洲精品久久久蜜桃| 亚洲精品福利视频网站| 欧美主播一区二区三区| 亚洲成人激情综合网| 日韩一级视频免费观看在线| 九九在线精品视频| 国产亚洲综合在线| 成人成人成人在线视频| 国产精品国产自产拍高清av| 在线观看成人免费视频| 天天综合网 天天综合色| 91精品国产乱| 国产一区二区三区四区五区入口| 欧美国产一区二区| 一本大道久久a久久综合| 图片区小说区国产精品视频 | 亚洲另类在线视频| 欧美剧在线免费观看网站| 久久99久国产精品黄毛片色诱| 国产午夜一区二区三区| 91免费观看国产| 日韩国产一二三区| 国产女人18水真多18精品一级做 | 狠狠色狠狠色综合| 国产精品免费观看视频| 欧美日韩国产影片| 国产精品1区二区.| 亚洲一区二区三区精品在线| 日韩精品一区二区三区四区 | 精品国产乱码久久久久久夜甘婷婷 | 亚洲综合清纯丝袜自拍| 日韩一二在线观看| 不卡的av电影在线观看| 日韩黄色小视频| 国产精品久久久久aaaa樱花| 欧美美女直播网站| 粉嫩欧美一区二区三区高清影视| 亚洲精品免费一二三区| 久久久欧美精品sm网站| 欧美性猛交xxxxxx富婆| 国产在线精品免费| 亚洲一区二区美女| 久久亚洲精品国产精品紫薇| 欧美伊人久久久久久久久影院| 国产毛片一区二区| 亚洲国产精品久久人人爱蜜臀| 国产欧美视频在线观看| 欧美日韩国产另类一区| 成人网页在线观看| 久久精品噜噜噜成人av农村| 一片黄亚洲嫩模| 国产精品青草久久| 精品久久久久久久久久久久包黑料 |