<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-314  評論-209  文章-0  trackbacks-0

    bash shell 腳本執(zhí)行的方法有多種,本文作一個(gè)總結(jié),供大家學(xué)習(xí)參考。

        假設(shè)我們編寫好的shell腳本的文件名為hello.sh,文件位置在/data/shell目錄中并已有執(zhí)行權(quán)限。

    方法一:切換到shell腳本所在的目錄(此時(shí),稱為工作目錄)執(zhí)行shell腳本:
    cd /data/shell
    ./hello.sh
    ./的意思是說在當(dāng)前的工作目錄下執(zhí)行hello.sh。如果不加上./,bash可能會(huì)響應(yīng)找到不到hello.sh的錯(cuò)誤信息。因?yàn)槟壳暗墓ぷ髂夸洠?data/shell)可能不在執(zhí)行程序默認(rèn)的搜索路徑之列,也就是說,不在環(huán)境變量PASH的內(nèi)容之中。查看PATH的內(nèi)容可用 echo $PASH 命令。現(xiàn)在的/data/shell就不在環(huán)境變量PASH中的,所以必須加上./才可執(zhí)行。

    方法二:以絕對路徑的方式去執(zhí)行bash shell腳本:
    /data/shell/hello.sh

    方法三:直接使用bash 或sh 來執(zhí)行bash shell腳本:
    cd /data/shell

    bash hello.sh

    cd /data/shell

    sh hello.sh
        注意,若是以方法三的方式來執(zhí)行,那么,可以不必事先設(shè)定shell的執(zhí)行權(quán)限,甚至都不用寫shell文件中的第一行(指定bash路徑)。因?yàn)榉椒ㄈ菍ello.sh作為參數(shù)傳給sh(bash)命令來執(zhí)行的。這時(shí)不是hello.sh自己來執(zhí)行,而是被人家調(diào)用執(zhí)行,所以不要執(zhí)行權(quán)限。那么不用指定bash路徑自然也好理解了啊,呵呵……。

    方法四:在當(dāng)前的shell環(huán)境中執(zhí)行bash shell腳本:
    cd /data/shell

    . hello.sh

    cd /data/shell

    source hello.sh
        前三種方法執(zhí)行shell腳本時(shí)都是在當(dāng)前shell(稱為父shell)開啟一個(gè)子shell環(huán)境,此shell腳本就在這個(gè)子shell環(huán)境中執(zhí)行。shell腳本執(zhí)行完后子shell環(huán)境隨即關(guān)閉,然后又回到父shell中。而方法四則是在當(dāng)前shell中執(zhí)行的。

    假設(shè)shell腳本文件為hello.sh
    放在/root目錄下。

    下面介紹幾種在終端執(zhí)行shell腳本的方法:

    復(fù)制代碼代碼如下:
    [root@localhost home]# cd /root/
    [root@localhost ~]#vim hello.sh
    #!  /bin/bash
    cd /tmp
    echo "hello guys!"
    echo "welcome to my Blog:linuxboy.org!"

    1.切換到shell腳本所在的目錄,執(zhí)行:

    復(fù)制代碼代碼如下:
    [root@localhost ~]# ./hello.sh
    -bash: ./ hello.sh: 權(quán)限不夠

    2.以絕對路徑的方式執(zhí)行:

    復(fù)制代碼代碼如下:
    [root@localhost ~]# /root/Desktop/hello.sh
    -bash: /root/Desktop/ hello.sh: 權(quán)限不夠

    3.直接用bash或sh執(zhí)行:

    復(fù)制代碼代碼如下:
    [root@localhost ~]# bash hello.sh
    hello guys!
    welcome to my Blog:linuxboy.org!
    [root@localhost ~]# pwd
    /root
     
    [root@localhost ~]# sh hello.sh
    hello guys!
    welcome to my Blog:linuxboy.org!
    [root@localhost ~]# pwd
    /root

       注意:用以上三種方法執(zhí)行shell腳本,現(xiàn)行的shell會(huì)開啟一個(gè)子shell環(huán)境,去執(zhí)行shell腳本,前兩種必須要有執(zhí)行權(quán)限才能夠執(zhí)行。也可以讓shell腳本在現(xiàn)行的shell中執(zhí)行:

    4.現(xiàn)行的shell中執(zhí)行

    復(fù)制代碼代碼如下:
    [root@localhost ~]# . hello.sh
    hello guys!
    welcome to my Blog:linuxboy.org!
    [root@localhost tmp]# pwd
    /tmp 
     
    [root@localhost ~]# source hello.sh
    hello guys!
    welcome to my Blog:linuxboy.org!
    [root@localhost tmp]# pwd
    /tmp

        對于第4種不會(huì)創(chuàng)建子進(jìn)程,而是在父進(jìn)程中直接執(zhí)行。
        上面的差異是因?yàn)樽舆M(jìn)程不能改變父進(jìn)程的執(zhí)行環(huán)境,所以CD(內(nèi)建命令,只有內(nèi)建命令才可以改變shell 的執(zhí)行環(huán)境)沒有成功,但是第4種沒有子進(jìn)程,所以CD成功。

    posted on 2015-12-02 10:33 xzc 閱讀(390) 評論(0)  編輯  收藏 所屬分類: linux/unix
    主站蜘蛛池模板: 免费毛片a在线观看67194| 57pao一国产成永久免费| 国产真人无遮挡作爱免费视频 | 97在线视频免费公开视频| 四虎永久免费网站免费观看| 亚洲色无码专区一区| 精品国产免费观看| 特黄特色大片免费| 中文字幕亚洲激情| 久久久久久久99精品免费观看 | 亚洲中文无码亚洲人成影院| 免费人成视频在线| 久久亚洲精品无码av| 又色又污又黄无遮挡的免费视| 黄页网站在线免费观看| 中文字幕亚洲综合久久男男| 日本免费中文视频| 亚洲国产精品成人综合久久久| 成人毛片免费网站| 天堂亚洲免费视频| 亚洲国产精品一区第二页| 99久久精品免费精品国产| 国产精品亚洲精品观看不卡| 国产网站免费观看| 最新亚洲成av人免费看| 亚洲国产精品久久久久秋霞影院 | 国产精品久久久久久久久免费| 亚洲大成色www永久网址| 免费一级国产生活片| 国产麻豆成人传媒免费观看 | 亚洲最大黄色网站| 国产免费午夜a无码v视频| 最近的2019免费中文字幕| 亚洲国产高清美女在线观看| 国产性生交xxxxx免费| 免费黄色电影在线观看| 亚洲性色精品一区二区在线| 国产aⅴ无码专区亚洲av麻豆 | 午夜免费国产体验区免费的| 亚洲视频在线免费看| 又粗又硬免费毛片|