SHELL指令碼執行的幾種方法以及區別

2022-04-28 17:06:39 字數 4184 閱讀 4203

1樓:晏智不書

#2sh/bash

./a.sh

這種情況不需要指令碼具有執行許可權

以上兩種執行方式都是在子shell中執行的,也就是說當前shell需要啟動另外一個shell,用來執行a.sh內的命令

#1source

./a.sh

#2../a.sh(注意前面的.)

以上兩種執行方式是在當前shell下執行,並不需要建立子shell

source和

.命令的作用:用來執行一個指令碼

前兩種方式和後兩種方式的另外區別:如果你在一個指令碼里export

$kkk=111

,如果你用./a.sh執行該指令碼,執行完畢後,你執行

echo

$kkk

,發現沒有值,如果你用source來執行

,然後再echo

,就會發現kkk=111。因為呼叫./a.

sh來執行shell是在一個子shell裡執行的,所以執行後,結構並沒有反應到父shell裡,但是source不同它就是在本shell中執行的,所以可以看到結果。

#執行指令碼時是在一個子shell環境執行的,指令碼執行完後該子shell自動退出

#一個shell中的系統環境變數只對該shell或者它的子shell有效,該shell結束時變數消失(並不能返回到父shell中)

#用export定義的變數會被複制到該shell的子shell中

2樓:矯梅花天雲

給指令碼加上執行許可權chmod

u+xa.sh,

而後就可以直接用全路徑來執行指令碼了,比如當前資料夾下用./a.sh,如果如果指令碼所在目錄在path環境變數之中,

則直接用a.sh即可(這和執行我們自己編寫的程式是一個道理)sh/bash

./a.sh

這種情況不需要指令碼具有執行許可權以上兩種執行方式都是在子shell中執行的,也就是說當前shell需要啟動另外一個shell,用來執行a.sh內的命令source

./a.sh

../a.sh(注意前面的

.)以上兩種執行方式是在當前shell下執行,並不需要建立子shellsource和

.命令的作用:用來執行一個指令碼

前兩種方式和後兩種方式的另外區別:如果你在一個指令碼里export

$kkk=111

,如果你用./a.sh執行該指令碼,執行完畢後,你執行

echo

$kkk

,發現沒有值,如果你用source來執行

,然後再echo

,就會發現kkk=111。因為呼叫./a.sh來執行shell是在一個子shell裡執行的,所以執行後,結構並沒有反應到父shell裡,但是

source不同它就是在本shell中執行的,所以可以看到結果。

shell指令碼的幾種執行方式之區別

3樓:紫夜梟雄

1、bash 指令碼

bai文du件或者 sh 指令碼檔案,通過這種方式可以執行zhi沒有執行權dao限或者在指令碼里面沒有指內定直譯器的容指令碼;

2、./指令碼檔案或者指令碼檔案全路徑,通過這種方式執行指令碼檔案需要指令碼檔案有執行許可權,並且在指令碼檔案裡面指定了正確的直譯器;

3、source 指令碼檔案或者. 指令碼檔案(.和指令碼檔案之間有空格),這種執行方式是在當前shell下執行,執行後指令碼中定義的變數不會釋放,這也是此種方式執行指令碼與前三種的最大區別。

例如在指令碼中定義了name=gg,那麼在指令碼執行完成之後,echo $name仍會顯示gg

shell指令碼執行的幾種方法以及區別

4樓:卷珏

#2 sh/bash ./a.sh 這種情況不需要指令碼具有執行許可權

以上兩種執行方式都是在子shell中執行的,也就是說當前shell需要啟動另外一個shell,用來執行a.sh內的命令

#1 source ./a.sh

#2 ../a.sh(注意前面的 . )

以上兩種執行方式是在當前shell下執行,並不需要建立子shell

source和 . 命令的作用:用來執行一個指令碼

前兩種方式和後兩種方式的另外區別:如果你在一個指令碼里export $kkk=111 ,如果你用./a.

sh執行該指令碼,執行完畢後,你執行 echo $kkk ,發現沒有值,如果你用source來執行 ,然後再echo ,就會發現kkk=111。因為呼叫./a.

sh來執行shell是在一個子shell裡執行的,所以執行後,結構並沒有反應到父shell裡,但是source不同它就是在本shell中執行的,所以可以看到結果。

# 執行指令碼時是在一個子shell環境執行的,指令碼執行完後該子shell自動退出

# 一個shell中的系統環境變數只對該shell或者它的子shell有效,該shell結束時變數消失(並不能返回到父shell中)

# 用export定義的變數會被複制到該shell的子shell中

shell指令碼的執行都有哪些方法,有何不同

5樓:匿名使用者

1、直接用shell命令來執行你的指令碼,如:sh scriptfilename;ksh scriptfilename

這種方法可以在命令後面通過不同的選項來進行除錯

2、給指令碼授予可執行許可權: chmod +x scriptfilename ,在指令碼所在目錄下輸入 ./scriptfilename

6樓:喻逸

執行一個bash指令碼的3中方式:

1.為指令碼檔案加上可執行的許可權:

chmod +x script_file

2.執行/bin/bash 命令並且把指令碼檔名作為它的引數3.可在shell指令碼中的開頭加上一句:#!/bin/bash,然後在指令碼所在目錄 ./shellfile

看自己的需求,沒什麼本質的區別。

shell和shell指令碼有什麼區別啊?

7樓:仇羽吾詠

shell是什麼呢?確切一點說,shell就是一個命令列直譯器,它的作用就是遵循一定的語法將輸入的命令加以解釋並傳給系統。它為使用者提供了一個向linux傳送請求以便執行程式的介面系統級程式,使用者可以用shell來啟動、掛起、停止甚至是編寫一些程式。

shell本身是一個用c語言編寫的程式,它是使用者使用linux的橋樑。shell既是一種命令語言,又是一種程式設計語言(就是你所說的shell指令碼)。作為命令語言,它互動式地解釋和執行使用者輸入的命令;作為程式設計語言,它定義了各種變數和引數,並提供了許多在高階語言中才具有的控制結構,包括迴圈和分支。

它雖然不是linux系統核心的一部分,但它呼叫了系統核心的大部分功能來執行程式、建立文件並以並行的方式協調各個程式的執行。

如何執行shell指令碼?

8樓:呼延溶

編寫好的shell指令碼(如:test),可以採取兩種方式進行執行:

一、 $ sh test

一般不採用這種呼叫方式,尤其不採用「sh

也可以採用 $ ksh test

這種方式要求shell具有「可讀」的訪問許可權。

二、直接執行可執行的shell指令碼之前,首先應使用下列chmod命令,把shell指令碼檔案設定為可執行的檔案。

chmod 755 test(除檔案屬主可寫之外,每個使用者均具有讀和可執行的訪問許可權)

chmod +rx test(同上)

chmod u+rx test(只有檔案屬主具有讀和執行的訪問許可權)

按照上述要求設定shell指令碼檔案的訪問許可權後,可採用下列方式,直接執行shell指令碼了。

1、test(如果命令檢索路徑包含當前目錄)

2、./test(如果命令減縮路徑不包含當前目錄)

*說明: sh test 方式呼叫一個shell叫蹦可能會禁止某些shell特定的擴充套件功能,因而可能引起指令碼無法正確執行。

shell指令碼有幾種執行方式,如何使用

9樓:良玉小帝

sh a.sh

或者chmod a+x a.sh

./a.sh

有執行許可權就行了。

看鳥哥的私房菜學學吧

10樓:talkmacy岑

所居猛獸奔。遷人同衛鶴,

every time接從句的幾種方法

every time 可以引導時間狀語從句可引導時間狀語從句的time短語有every time,each time,the next time,the last time,by the time,the first time,any time等 應該沒有你說的every time when 句子和...

windows設定定時開機的幾種方法

系統如何設定定時開機 電腦定時開機 巨集碁電腦非bios方法。你是否嘗試過bios方法定時開機卻發現介面找不到選項?你是否想過買定時開機軟體但覺得費用有些小貴?本文將介紹一種非bios定時開機的方法。由於非專業人士,拙見請見諒。定時開機大概有兩種模式,第一種使用bios介面設定定時開機,第二種嚴格意...

詩歌鑑賞有哪些方法古代詩歌鑑賞的幾種方法

總體來說,你做一篇詩歌鑑賞的步驟如下 1.看標題 通常標題含有一定的資訊,如時令 地點 型別,當然也有隻是詞牌名的 2.看作者 不過一來要防止被某些名家的慣有風格所誤導,二來有些不出名的就用不上 3.看意象 詩句中的意象就是在間接提醒你詩歌的基調和所表達的思想感情 4.判型別 屬於詠物詩 寫景詩 送...