最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談ubuntu執(zhí)行.sh文件幾種方式區(qū)別

 更新時(shí)間:2019年09月24日 15:11:07   作者:yao偉斌  
這篇文章主要介紹了淺談ubuntu執(zhí)行.sh文件幾種方式區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

不同的script執(zhí)行方式會(huì)造成不一樣的結(jié)果,尤其對(duì)bash的環(huán)境影響很大,腳本的執(zhí)行方式有大概以下幾種方式。

首先寫一個(gè)簡(jiǎn)單的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執(zhí)行

使用 sh test.sh 來執(zhí)行script文件,該方法標(biāo)明使用 sh 這種shell來執(zhí)行test.sh文件,sh已經(jīng)是一種被bash替代的shell,盡管我們?cè)趖est.sh中聲明使用 #!/bin/bash 來執(zhí)行我們的文件,但此時(shí)使用sh而不是bash,則#!/bin/bash 已不起作用。

使用bash test.sh 執(zhí)行

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

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

使用點(diǎn) . 執(zhí)行

該種方式使用之前必須為文件添加執(zhí)行的權(quán)限:

$ chmod +x test.sh

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

只有該種執(zhí)行方式需要對(duì)文件添加執(zhí)行權(quán)限,其他方式并不需要。

使用source執(zhí)行

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

source test.sh 

區(qū)別

當(dāng)我們使用 sh test.sh 、bash test.sh 、 ./test.sh 執(zhí)行腳本的時(shí)候,該test.sh運(yùn)行腳本都會(huì)使用一個(gè)新的shell環(huán)境來執(zhí)行腳本內(nèi)的命令,也就是說,使用這3種方式時(shí),其實(shí)script是在子進(jìn)程的shell內(nèi)執(zhí)行,當(dāng)子進(jìn)程完成后,子進(jìn)程內(nèi)的各項(xiàng)變量和操作將會(huì)結(jié)束而不會(huì)傳回到父進(jìn)程中。

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

[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方法來執(zhí)行腳本呢?

[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方法執(zhí)行腳本是在父進(jìn)程中執(zhí)行的,test.sh的各項(xiàng)操作都會(huì)在原本的shell內(nèi)生效,這也是為什么不注銷系統(tǒng)而要讓某些寫入~/.bashrc的設(shè)置生效時(shí),需要使用 source ~/.bashrc 而不能使用 bash ~/.bashrc

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序 Linux開發(fā)環(huán)境設(shè)置詳解

    微信小程序 Linux開發(fā)環(huán)境設(shè)置詳解

    這篇文章主要介紹了微信小程序 Linux開發(fā)環(huán)境設(shè)置詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • Ubuntu12.04建立內(nèi)核樹實(shí)現(xiàn)過程詳解

    Ubuntu12.04建立內(nèi)核樹實(shí)現(xiàn)過程詳解

    這篇文章主要介紹了Ubuntu12.04建立內(nèi)核樹實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 讓你知道什么是 SVN

    讓你知道什么是 SVN

    subversion(簡(jiǎn)稱svn)是近年來崛起的版本管理工具,是cvs的接班人。目前,絕大多數(shù)開源軟件都使用svn作為代碼版本管理軟件。
    2009-03-03
  • apache的access.log和error.log減肥

    apache的access.log和error.log減肥

    我的服務(wù)器是用apache搭建的,里面的access.log和error.log這兩個(gè)文件要經(jīng)常上去看,和清理,如果時(shí)間忙,忘記看和清理了,過不了多久,這兩個(gè)文件就膨脹的非常的大,打都打不開了。
    2009-09-09
  • centos6.5 安裝hadoop1.2.1的教程詳解【親測(cè)版】

    centos6.5 安裝hadoop1.2.1的教程詳解【親測(cè)版】

    這篇文章主要介紹了centos6.5 安裝hadoop1.2.1的教程詳細(xì),該教程小編親測(cè)過,非常不錯(cuò),值得推薦給大家,需要的朋友可以參考下
    2018-08-08
  • CentOS7 Docker Nginx部署及運(yùn)行詳解

    CentOS7 Docker Nginx部署及運(yùn)行詳解

    這篇文章主要介紹了CentOS7 Docker Nginx部署及運(yùn)行詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Linux實(shí)現(xiàn)自動(dòng)掛載autofs的方法詳解

    Linux實(shí)現(xiàn)自動(dòng)掛載autofs的方法詳解

    這篇文章主要介紹了Linux實(shí)現(xiàn)自動(dòng)掛載autofs的相關(guān)資料。autofs 服務(wù)將實(shí)現(xiàn)自動(dòng)掛載外圍設(shè)備,NFS共享目錄等,并在空閑5分鐘后后自動(dòng)卸載,需要的可以參考一下
    2022-10-10
  • 在Centos下安裝python

    在Centos下安裝python

    這篇文章主要介紹了在Centos下安裝python,CentOS是Linux發(fā)行版之一,依照開放源代碼規(guī)定發(fā)布的源代碼所編譯而成,需要的朋友可以參考下
    2023-04-04
  • 在ubuntu中部署samba服務(wù)器的方法

    在ubuntu中部署samba服務(wù)器的方法

    這篇文章主要介紹了在ubuntu中部署samba服務(wù)器的方法,包括samba的安裝,創(chuàng)建Samba配置文件的方法,本文給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-10-10
  • Linux安裝Docker-Compose過程

    Linux安裝Docker-Compose過程

    文章介紹了在Linux系統(tǒng)上安裝Docker?Compose的步驟,包括使用curl從GitHub下載Docker?Compose二進(jìn)制文件并保存到/usr/local/bin目錄,然后通過chmod命令增加執(zhí)行權(quán)限
    2024-11-11

最新評(píng)論

泰宁县| 朝阳区| 黎城县| 南城县| 遵义市| 兴山县| 泗洪县| 广灵县| 临高县| 尚义县| 海口市| 高雄县| 莲花县| 化隆| 井研县| 武川县| 美姑县| 时尚| 宜章县| 彭水| 依安县| 元谋县| 深水埗区| 宁乡县| 罗甸县| 凉山| 泰州市| 宁德市| 刚察县| 普洱| 宁海县| 林州市| 水富县| 嘉峪关市| 奉化市| 嘉善县| 繁昌县| 惠东县| 泰安市| 枣庄市| 昆明市|