婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談ubuntu執行.sh文件幾種方式區別

淺談ubuntu執行.sh文件幾種方式區別

熱門標簽:外呼系統打哪顯哪 蘭州ai電銷機器人招商 北海市地圖標注app 高德地圖標注論壇 江西外呼系統 AI電銷機器人 源碼 新邵電銷機器人企業 湖北ai智能電銷機器人 新科美甲店地圖標注

前言

不同的script執行方式會造成不一樣的結果,尤其對bash的環境影響很大,腳本的執行方式有大概以下幾種方式。

首先寫一個簡單的test.sh文件:

#!/bin/bash

read -p "Please input your first name:" firstname
read -p "Please input your last name:" lastname
echo -e "\nYour full name is: $firstname $lastname"

使用sh test.sh執行

使用 sh test.sh 來執行script文件,該方法標明使用 sh 這種shell來執行test.sh文件,sh已經是一種被bash替代的shell,盡管我們在test.sh中聲明使用 #!/bin/bash 來執行我們的文件,但此時使用sh而不是bash,則#!/bin/bash 已不起作用。

使用bash test.sh 執行

該方法其實與 sh test.sh 的原理一樣,只是使用了 /bin/bash 該種shell來執行我們的腳本文件。

所以,其實使用 dash test.sh' 也是可以的,只是取決于自己想使用那種shell來執行腳本,但sh、bash、dash三者有些許差別,對于部分關鍵字如 let,bash支持,而sh和dash并不支持,對于部分關鍵字則選擇使用bash。

使用點 . 執行

該種方式使用之前必須為文件添加執行的權限:

$ chmod +x test.sh

添加完執行權限之后,便可以使用 ./test.sh 來執行腳本,該方式與 bash test.sh 是一樣的 ,默認使用 bin/bash 來執行我們的腳本。

只有該種執行方式需要對文件添加執行權限,其他方式并不需要。

使用source執行

使用source則也能夠直接執行我們的腳本:

source test.sh 

區別

當我們使用 sh test.sh 、bash test.sh 、 ./test.sh 執行腳本的時候,該test.sh運行腳本都會使用一個新的shell環境來執行腳本內的命令,也就是說,使用這3種方式時,其實script是在子進程的shell內執行,當子進程完成后,子進程內的各項變量和操作將會結束而不會傳回到父進程中。

無法理解??看下面例子:

[root@ubuntu] # bash test.sh
Please input your first name: yao  <==輸入firstname
Please input your last name: pentonBin  <==輸入lastname

Your full name is: yao pentonBin
[root@ubuntu] # echo $firstname
       <==這里沒有輸出

如果使用source方法來執行腳本呢?

[root@ubuntu] # source test.sh
Please input your first name: yao  <==輸入firstname
Please input your last name: pentonBin  <==輸入lastname

Your full name is: yao pentonBin
[root@ubuntu] # echo $firstname
yao    <==這里輸出firstname

也就是說,source方法執行腳本是在父進程中執行的,test.sh的各項操作都會在原本的shell內生效,這也是為什么不注銷系統而要讓某些寫入~/.bashrc的設置生效時,需要使用 source ~/.bashrc 而不能使用 bash ~/.bashrc

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:南陽 自貢 大理 阿克蘇 黃石 海南 黔東 池州

巨人網絡通訊聲明:本文標題《淺談ubuntu執行.sh文件幾種方式區別》,本文關鍵詞  淺談,ubuntu,執行,.sh,文件,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談ubuntu執行.sh文件幾種方式區別》相關的同類信息!
  • 本頁收集關于淺談ubuntu執行.sh文件幾種方式區別的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 铁力市| 黄龙县| 两当县| 乌鲁木齐市| 麻城市| 阿尔山市| 镇沅| 麻阳| 鄂伦春自治旗| 吉安市| 呼伦贝尔市| 青龙| 岫岩| 天峻县| 泸州市| 赤壁市| 涞源县| 随州市| 二连浩特市| 稷山县| 开化县| 平乡县| 大厂| 新平| 宜兰县| 凤翔县| 永新县| 朝阳市| 乐都县| 临猗县| 通城县| 思南县| 永修县| 工布江达县| 罗甸县| 南皮县| 新余市| 昭苏县| 即墨市| 平罗县| 称多县|