當前位置:首頁 » 編程軟體 » shell腳本程序編譯運行

shell腳本程序編譯運行

發布時間: 2022-04-02 10:22:27

linuxx下的c語言程序和shell腳本程序有什麼不同各自是怎麼樣運行的

c語言,是一個進程之間的范疇,一個進程通過多個c語言的系統調用和演算法,組成一個程序,運行是產生一個進程,shell腳本是由命令行解釋器進行不同的調用多個進程,通過傳入一個對進程傳入參數和傳出參數由命令行解釋器實現進程之間命令行輸入和輸出的數據銜接和通信

⑵ 如何運行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環境相反.

⑶ 如何寫一個shell腳本在Linux下來運行main函數

這要看你的main函數是什麼語言的了,如果是shell裡面的函數,可以這么寫:
main() {
echo "1234567"
)
echo "start"
main
echo "end"
exit 0

如果是其他語言,那你可以直接調用編譯後的可執行程序:
echo "start"
main
echo "end"
如果有入參,可以在main後面直接寫,用空格分割

那就好說了,首先你得在linux安裝JDK,然後把java_HOME、CLASSPATH和PATH這幾個環境變數設置好,然後把上面的main換成
java 程序,這個程序需要是javac後的

⑷ 在windows中怎樣運行shell腳本來編譯程序

首先電腦中需要安裝的是git的應用程序,安裝完成之後,可以在開始菜單進行查看。 並需要配置好git的bin,配置環境變數,把bin的絕對路徑復制到環境變數中path。 配置git的環境變數之後,在任意文件進行創建一個為mkdir.sh,文件名可以是隨意的結.

⑸ 在Linux C語言下,可執行的Shell腳本文件與編譯之後的C可執行文件的區別有哪些

shell腳本是shell的一種擴展功能,也就是shell會根據你所寫的腳本一條一條的去執行,C寫的程序是直接給CPU執行的。一般來說做一些簡單功能,特別是和shell有關的。我們會用shell腳本,如系統環境的設定,開機後執行系統的初始化等。做一些功能復雜的,特別人用戶自已所想到的功能時會用C語。另外如果程序執行是要用到root許可權是最好也用C語。

(1)Shell腳本與Windows/Dos下的批處理相似,也就是用各類命令預先放入到一個文件中,方便一次性執行的一個程序文件,主要是方便管理員進行設置或者管理用的。但是它比Windows下的批處理更強大,比用其他編程程序編輯的程序效率更高,它使用了Linux/Unix下的命令。

(2)C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

⑹ SHELL腳本運行的幾種方法以及區別

給腳本加上執行許可權chmod u+x a.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中執行的,所以可以看到結果。

⑺ 怎麼在bash腳本中運行一個已經編譯好的可執行程序

有2種辦法:
1、直接執行絕對路徑:
/usr/local/apache2/bin/apachetcl
2、建立軟鏈接到系統PATH中:
ln -s /usr/local/apache2/bin/* /usr/local/bin/
然後,你就可以直接敲命令apachectl了。。。

⑻ linux已經編譯好的shell腳本程序需要有什麼許可權才能使用/xxx.sh來執行

運行的許可權,使用chmod +x xxx.sh

熱點內容
phpmysql網站源碼 發布:2025-01-25 03:56:49 瀏覽:755
安卓手機華為手機哪個牌子好 發布:2025-01-25 03:55:55 瀏覽:25
比亞迪發動機壓縮比 發布:2025-01-25 03:55:16 瀏覽:329
全民小視頻腳本 發布:2025-01-25 03:54:28 瀏覽:926
鸚鵡linux 發布:2025-01-25 03:44:02 瀏覽:196
python如何拋出異常 發布:2025-01-25 03:40:27 瀏覽:985
更新成本演算法 發布:2025-01-25 03:38:09 瀏覽:115
我的世界在伺服器裡面用toolbox 發布:2025-01-25 03:38:09 瀏覽:567
學編程不想學了 發布:2025-01-25 03:36:51 瀏覽:380
如何壓縮0 發布:2025-01-25 03:36:49 瀏覽:794