欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本5種執(zhí)行方式及腳本不同的執(zhí)行方法和區(qū)別詳解

 更新時(shí)間:2022年07月19日 15:42:04   作者:血煞長(zhǎng)虹  
我們都知道bash?shell?腳本的方法有多種,下面這篇文章主要給大家介紹了關(guān)于shell腳本5種執(zhí)行方式及腳本不同的執(zhí)行方法和區(qū)別的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

shell腳本是一種腳本語(yǔ)言,他不需要編譯,而是直接通過(guò)解釋器,將腳本作為解釋器程序的參數(shù)運(yùn)行的。

我們通過(guò)編寫vim test.sh,然后用不同方法執(zhí)行名為test.sh的腳本。

#!/bin/bash
echo "hello word"

概述

1)使用絕對(duì)路徑執(zhí)行。
2)使用相對(duì)路徑執(zhí)行。語(yǔ)法格式:./a.sh
3)使用 sh或bash命令來(lái)執(zhí)行。語(yǔ)法格式: sh a.sh 不需要執(zhí)行權(quán)限 -x參數(shù)(顯示執(zhí)行過(guò)程)
4)使用 . (空格)腳本名稱來(lái)執(zhí)行。 語(yǔ)法格式:. a.sh 不需要執(zhí)行權(quán)限(特別注意:第一個(gè).后面有空格)
5)使用 source 來(lái)執(zhí)行。 語(yǔ)法格式:source a.sh 不需要執(zhí)行權(quán)限(主要用于生效配置文件)

下面針對(duì)這5種方式,我們一起來(lái)看看它們的具體使用方式和區(qū)別吧!

正題

一、方式1絕對(duì)路徑和方式2相對(duì)路徑,可以歸納為同一種方法

注意:新創(chuàng)建的腳本,默認(rèn)沒(méi)有x執(zhí)行權(quán)限,需要給它用#chmod +x test.sh的方式,添加執(zhí)行權(quán)限。在生產(chǎn)環(huán)境中不要輕易的給文件可執(zhí)行權(quán)限;

[root@centOS7 shell]# /root/test/shell/test.sh   #使用絕對(duì)路徑
hello word
[root@centOS7 shell]# ./test.sh  #使用相對(duì)路徑

二、方式3使用 sh/bash命令來(lái)執(zhí)行

注意:該方式雖然不需要手動(dòng)給腳本添加x執(zhí)行權(quán)限,但是它會(huì)改變腳本默認(rèn)解釋器類型。比如說(shuō):腳本首行定義的是#!/bin/bash,使用該方式,它會(huì)給你改用/bin/sh解釋器,也就說(shuō),最終效果=#!/bin/bash --posix

特別之處:該方式1.不需單獨(dú)給腳本分配x執(zhí)行權(quán)限;2.甚至都不需要在腳本首行聲明腳本解釋器類型,因?yàn)槟_本是被當(dāng)做該命令的參數(shù)使用的。

注:你可能會(huì)對(duì)/bin/bash和/bin/sh的區(qū)別感興趣,點(diǎn)擊這里。

ls 
chomod -x test.sh  #給腳本移除x執(zhí)行權(quán)限
ls
sh test.sh    #第3種方式運(yùn)行
bash test.sh  #第3種方式運(yùn)行

三、方式4使用 . (空格)腳本名稱來(lái)執(zhí)行

注:該方式,不需要單獨(dú)添加x執(zhí)行權(quán)限,它和source類似,權(quán)限繼承與bash。

ls  #查看腳本(灰色的,說(shuō)明沒(méi)有x可執(zhí)行權(quán)限)
. test.sh   #注意,點(diǎn)后面有個(gè)空格

四、方式5使用 source 來(lái)執(zhí)行(主要用于生效配置文件)

ls  #查看腳本(灰色的,說(shuō)明沒(méi)有x可執(zhí)行權(quán)限)
source test.sh   #該方式多用些操作,被修改后的配置文件(使之重新加載)

注意: 

.和source的權(quán)限,繼承的是/bin/bash的權(quán)限,在執(zhí)行時(shí)也是將test.sh作為參數(shù),并不需要test.sh有執(zhí)行權(quán)限;和bash執(zhí)行不一樣的是,source和.不會(huì)創(chuàng)建子進(jìn)程,是在當(dāng)前shell進(jìn)程下執(zhí)行的,因?yàn)樗麄兪莾?nèi)建命令,所以腳本中賦值的本地變量也會(huì)影響當(dāng)前shell的,用的時(shí)候一定要注意(盡量使用前面的3種方式)。

區(qū)別

1.關(guān)于執(zhí)行權(quán)限

僅前兩種(相對(duì)路徑、絕對(duì)路徑)方法,需要chmod +x test.sh,給腳本單獨(dú)添加x執(zhí)行權(quán)限。后三種方法,均不需要單獨(dú)添加x執(zhí)行權(quán)限。

2.關(guān)于是否開(kāi)啟子shell線程

前三種方法,腳本執(zhí)行時(shí)會(huì)開(kāi)啟一個(gè)子shell環(huán)境,在子shell執(zhí)行完后,子shell環(huán)境隨即關(guān)閉,然后又回到當(dāng)前shell中。

后面兩種. 和source方式,則是在當(dāng)前shell中執(zhí)行,不會(huì)開(kāi)啟子shell。

總結(jié) 

到此這篇關(guān)于shell腳本5種執(zhí)行方式及腳本不同的執(zhí)行方法和區(qū)別的文章就介紹到這了,更多相關(guān)shell腳本執(zhí)行方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 編寫B(tài)ash Shell通過(guò)gnuplot繪制系統(tǒng)性能數(shù)據(jù)圖的方法

    編寫B(tài)ash Shell通過(guò)gnuplot繪制系統(tǒng)性能數(shù)據(jù)圖的方法

    這篇文章主要介紹了編寫B(tài)ash Shell通過(guò)gnuplot繪制系統(tǒng)性能數(shù)據(jù)圖的方法,做到可視化數(shù)據(jù)收集,需要的朋友可以參考下
    2015-07-07
  • Shell中if的基本語(yǔ)法和常見(jiàn)判斷用法

    Shell中if的基本語(yǔ)法和常見(jiàn)判斷用法

    這篇文章主要介紹了Shell中if的基本語(yǔ)法和常見(jiàn)判斷用法,本文講解了if的基本語(yǔ)法、對(duì)字符串的判斷、對(duì)數(shù)字的判斷、對(duì)文件屬性的判斷、邏輯判斷等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • Linux nc命令使用示例

    Linux nc命令使用示例

    nc是netcat的簡(jiǎn)寫,是一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)工具,有著網(wǎng)絡(luò)界的瑞士軍刀美譽(yù),nc命令在linux系統(tǒng)中實(shí)際命令是ncat,nc是軟連接到ncat,這篇文章主要介紹了Linux nc命令使用示例,需要的朋友可以參考下
    2023-03-03
  • shell中set?-e的具體使用

    shell中set?-e的具體使用

    set?-e是一個(gè)Shell命令,它用于在腳本運(yùn)行時(shí)自動(dòng)退出,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Shell編程之變量數(shù)值計(jì)算方法示例

    Shell編程之變量數(shù)值計(jì)算方法示例

    這篇文章主要給大家介紹了關(guān)于Shell編程教程之變量數(shù)值計(jì)算的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • 使用shell腳本執(zhí)行hive、sqoop命令的方法

    使用shell腳本執(zhí)行hive、sqoop命令的方法

    今天小編就為大家分享一篇使用shell腳本執(zhí)行hive、sqoop命令的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • linux重啟和關(guān)閉系統(tǒng)命令的寫法

    linux重啟和關(guān)閉系統(tǒng)命令的寫法

    這篇文章給大家介紹了linux重啟和關(guān)閉系統(tǒng)命令的寫法,然后在文中給大家分享了linux五個(gè)重啟命令,感興趣的朋友一起看看吧
    2017-10-10
  • Linux 中的通配符詳解及實(shí)例

    Linux 中的通配符詳解及實(shí)例

    這篇文章主要介紹了Linux 中的通配符詳解及實(shí)例的相關(guān)資料,希望通過(guò)本文能掌握Linux 通配符的知識(shí),需要的朋友可以參考下
    2017-09-09
  • Linux下啟動(dòng)tomcat的方法

    Linux下啟動(dòng)tomcat的方法

    tomcat是隨機(jī)啟動(dòng)的,所以在開(kāi)啟服務(wù)器的時(shí)候要手動(dòng)開(kāi)啟tomcat,不然沒(méi)法訪問(wèn),本文給大家介紹linux下啟動(dòng)tomcat的方法,對(duì)linux啟動(dòng)tomcat的相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • 高級(jí)開(kāi)發(fā)運(yùn)維測(cè)試必須掌握的envsubst命令使用詳解

    高級(jí)開(kāi)發(fā)運(yùn)維測(cè)試必須掌握的envsubst命令使用詳解

    這篇文章主要為大家介紹了高級(jí)開(kāi)發(fā)運(yùn)維測(cè)試必須掌握的envsubst命令使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評(píng)論