導航:首頁 > 操作系統 > linuxsh怎麼執行

linuxsh怎麼執行

發布時間:2023-09-08 02:18:40

Ⅰ 如何運行linux shell程序

如何運行shell程序,如何在shell程序以及後續腳本中使用同一個變數,這些在工作中經常用到, 我找到如下的文章,再加深復習一下。
1 source命令用法:
source FileName
作用:在當前bash環境下讀取並執行FileName中的命令。該filename文件可以無"執行許可權"
註:該命令通常用命令「.」來替代。
如:source .bash_profile
. .bash_profile兩者等效。
source(或點)命令通常用於重新執行剛修改的初始化文檔。
source命令(從 C Shell 而來)是bash shell的內置命令。
點命令,就是個點符號,(從Bourne Shell而來)。
source的程序主體是bash,腳本中的$0變數的值是bash,而且由於作用於當前bash環境,腳本中set的變數將直接起效

2 sh, bash的命令用法:
sh/bash FileName

作用:打開一個子shell來讀取並執行FileName中命令。該filename文件可以無"執行許可權"

註:運行一個shell腳本時會啟動另一個命令解釋器.
每個shell腳本有效地運行在父shell(parent shell)的一個子進程里.
這個父shell是指在一個控制終端或在一個xterm窗口中給你命令指示符的進程.
shell腳本也可以啟動他自已的子進程.
這些子shell(即子進程)使腳本並行地,有效率地地同時運行腳本內的多個子任務.
在ubuntu中sh只是bash的一個鏈接。
由於是在子shell中執行,腳本設置的變數不會影響當前shell。

3 ./的命令用法:
./FileName
作用:打開一個子shell來讀取並執行FileName中命令。該filename文件需要"執行許可權"
註:運行一個shell腳本時會啟動另一個命令解釋器.
每個shell腳本有效地運行在父shell(parent shell)的一個子進程里.
這個父shell是指在一個控制終端或在一個xterm窗口中給你命令指示符的進程.
shell腳本也可以啟動他自已的子進程.
這些子shell(即子進程)使腳本並行地,有效率地地同時運行腳本內的多個子任務.
由於是在子shell中執行,腳本設置的變數不會影響當前shell。

4 export:
一個變數創建時,它不會自動地為在它之後創建的shell進程所知。而命令export可以向後面的shell傳遞變數的值。當一個shell腳本調用並執行時,它不會自動得到原為腳本(調用者)里定義的變數的訪問權,除非這些變數已經被顯式地設置為可用。export命令可以用於傳遞一個或多個變數的值到任何後繼腳本
5. 舉例
比如您在一個腳本里export $KKK=111 ,假如您用./a.sh執行該腳本,執行完畢後,您運行 echo $KKK ,發現沒有值,假如您用source來執行 ,然後再echo ,就會發現KKK=111。因為調用./a.sh來執行shell是在一個子shell里運行的,所以執行後,結構並沒有反應到父shell里,但是 source不同他就是在本shell中執行的,所以能夠看到結果.
小測試
1 建立test.sh
#!/bin/bash
export s=/home/jboss/
2 執行命令: source test.sh
echo $s
結果輸出: /home/jboss/
3 新開個shell
執行命令: ./test.sh
echo $s
結果: 沒有輸出s值

結論:
1、執行腳本時是在一個子shell環境運行的,腳本執行完後該子shell自動退出。
2、一個shell中的系統環境變數才會被復制到子shell中(用export定義的變數);
3、一個shell中的系統環境變數只對該shell或者它的子shell有效,該shell結束時變數消失(並不能返回到父shell中)。3、不用 export定義的變數只對該shell有效,對子shell也是無效的。

直接執行一個腳本文件是在一個子shell中運行的,而source則是在當前shell環境中運行的。
source可以讓腳本影響它們的父shell環境,這和export去影響子shell環境相反.

Ⅱ linux怎麼運行.sh

linux怎麼運行.sh需要3個步驟來完成,下面是具體介紹:
1、找到文件所在山仔目錄,cd到.sh文件所在目錄。


今天的分享就是這些,希望能幫助大家。
本文逗灶汪章基於thinkpadE15品牌、centos7系統撰寫的。

Ⅲ Linux Shell腳本的執行過程

用戶登錄時,將會取得一個 bash ,這個 bash 在系統中有一個全局唯一的ID,也就是進程的ID,使用命令 ps -ef 並配合 grep 來查看進程ID。 ps -ef|grep bash ,此命令還能查看進程對應的父進程ID,系統中所有進程的祖先進程都是INIT進程(進程ID=1),它是最先啟動運行的。
回到 bash 進程,也就是我們的命令行界面,進程的執行都有其附屬的執行環境,環境變數就屬於其中之一。並且環境變數是可以完全被子進程繼承的,也就是說,子進程可以使用父進程的環境變數,但是不能使用父進程的自定義變數。
簡而言之: 子進程繼承父進程的環境變數,不繼承父進程的自定義變數。

shell腳本有4種執行方式,不同的執行方式可能導致結果不一致

四種方式的執行結果如下:

Ⅳ linux無法執行. sh文件,怎麼解決

no such file or directory

沒有這樣的文件或目錄

解決方法

分析原因,可能因為平台遷移碰到許可權問題我們來進行許可權轉換

1)在Windows下轉換:

利用一些編輯器如UltraEdit或EditPlus等工具先將腳本編碼轉換,再放到Linux中執行。轉換方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。

2)方法

用vim打開該sh文件,輸入:

[plain]
:setff

回車,顯示fileformat=dos,重新設置下文件格式:

[plain]
:setff=unix

保存退出:

[plain]
:wq

再執行,竟然可以了

3)在linux中的許可權轉換

也可在Linux中轉換:

首先要確保文件有可執行許可權

#chmo+xfilename

然後修改文件格式

#vifilename

以上三種方法都可以幫助大家解決有關linux執行.sh文件時出現no such file or directiory一問題,有需要的朋友可以參考下了,希望對大家有所幫助。

Ⅳ 怎樣在linux的terminal下運行.sh文件

有兩種方式,一種方式是用bash sh文件名來執行,用bash這個命令來運行sh文件的好處是不需要sh文件具有可執行許可權,sh文件只要有可讀許可權就可以了;
第二種方式是賦予sh文件可執行許可權,然後直接運行它。賦予sh文件可執行許可權用chmod命令:
chmod a+x sh文件名
直接運行可以用絕對路徑如/root/test.sh,也可以用cd命令切換到sh文件的目錄,然後用類似./test.sh的方式運行(加./表示在當前目錄下運行)。

閱讀全文

與linuxsh怎麼執行相關的資料

熱點內容
壓縮機工藝管是多大的 瀏覽:310
安卓刷什麼系統穩定 瀏覽:33
程序員寫炫酷代碼 瀏覽:928
大話存儲pdf 瀏覽:524
中銘機器人怎麼編程 瀏覽:812
把字母變為數字的加密法 瀏覽:523
噬血狂襲第三季哪個app能看 瀏覽:421
江蘇螺桿壓縮機 瀏覽:980
android底部彈出對話框 瀏覽:501
怎麼查伺服器同行fc號 瀏覽:999
什麼伺服器雲鳥最便宜 瀏覽:221
vs編譯器反匯編 瀏覽:570
程序員直播做項目創業 瀏覽:403
linux下samba配置 瀏覽:797
程序員面試銀行崗位會有編制嗎 瀏覽:414
ex表怎麼加密碼保護 瀏覽:173
小孩上編程課用哪款好 瀏覽:559
如何製作伺服器商店 瀏覽:736
壓縮氣管閥門 瀏覽:466
pdf推文 瀏覽:361