sh命令執行shell腳本
㈠ 執行shell腳本三種方法的區別:(sh、exec、source)
使用$ sh script.sh執行腳本時,當前shell是父進程,生成一個子shell進程,在子shell中執行腳本。腳本執行完畢,退出子shell,回到當前shell。
./script.sh與 sh script.sh等效。
使用$ source script.sh方式,在當前上下文中執行腳本,不會生成新的進程。腳本執行完畢,回到當前shell。
source方式也叫點命令。
. script.sh與 source script.sh等效。
使用exec command方式,會用command進程替換當前shell進程,並且保持PID不變。執行完畢,直接退出,不回到之前的shell環境。
二、測試驗證
vi loop.sh
顯示當前進程
sh的方式:執行loop.sh列印執行進程
source方式:執行loop.sh列印執行進程
exec方式:執行loop.sh列印執行進程
按下ctrl+C
sh方式:父進程是6770,執行loop.sh時的子進程是13736。執行完畢後回到父進程shell。
source方式:父進程和子進程都是6770(執行時沒有新的進程),執行完畢會回到父進程shell。
exec方式:進程PID沒有改變都是6770,執行完畢(ctrl+C強制關閉)時直接退出了shell。腳本執行時替換了父進程的shell,執行完畢後直接退出,沒有回到之前的shell。
㈡ sh代表什麼意思
1、sh是linux中運行shell的命令,是shell的解釋器,shell腳本是linux中殼層與命令行界面,用戶可以在shell腳本輸入命令來執行各種各樣的任務。
要運行shell腳本,首選需要給shell腳本許可權,這里里以hello.sh文件為例,首先需要按下「crtl+shift+T」打開終端窗口:
(2)sh命令執行shell腳本擴展閱讀
使用用戶的預設憑證和環境執行 shell。
在UEFI環境下,EFI的Shell環境提供了一組豐富的擴展和增強的命令,在以後的計算機中,傳統的DOS界面將會被SHELL環境所取代。
所有的.exe文件將不會在以後支持SHELL的環境中出現,取而代之的文件後綴是.efi。在SHELL環境下,分為IA32和X64,32位的*.efi文件不能在X64的計算機中運行。
㈢ linux shell腳本執行命令
方式一:
切換到shell腳本所在的目錄(也叫工作目錄)執行shell腳本,具體代碼是:
cd /data/shell
./hello.sh
方式二:
可以以絕對路徑的方法去執行bash shell腳本,具體代碼是:
/data/shell/hello.sh
方式三:
可以選擇直接使用bash命令或者sh命令來執行bash shell腳本,具體代碼是:
cd /data/shell
bash hello.sh
或者
cd /data/shell
sh hello.sh
方式四:
還可以選擇在當前的shell環境中執行bash shell腳本,具體代碼是:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
說明:前三種方式執行shell腳本時都需要在當前shell(即父shell)開啟的一個子shell環境中執行,完成之後就會關閉回到原來的shell中,但方式四是直接在當前的shell中執行的。