shell腳本執行shell腳本
『壹』 shell腳本獲取參數&在線執行shell腳本
本文介紹以下升攜伏2個知識點,為後後續在工作過程中安裝一吵攜鍵安裝腳本打好基礎:
如下shell腳本中傳入的參隱鏈數依次值如下:
如腳本 getopts.sh
執行 ./getopts.sh -a dd -b ,列印如下結果
如腳本 for.sh
有時候shell腳本可以放在http頁面上,不用download,可以直接執行。
https://www.cnblogs.com/klb561/p/8933992.html
https://www.cnblogs.com/faberbeta/archive/2004/01/13/13559686.html
『貳』 windows怎麼運行shell腳本
在工作中情況會在碰到linux下進行執行shell的腳本,而就會使用shell的腳本,但經常使用的Windows的系統,而想在Windows電腦中進行直接shell的腳本,而不用再進行學習其它的腳本語言。
工具/原料
Windows
git
方法/步驟
1、首先電腦中需要安裝的是git的應用程序,安裝完成之後,可以在開始菜單進行查看。
『叄』 執行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。
『肆』 Linux下如何執行Shell腳本
linux下可以有兩種方式執行shell腳本:
1、用shell程序執行腳本:根據shell腳本的類型,選擇shell程序,常用的有sh,bash,tcsh等(一般來說第一行#!/bin/bash裡面指明了shell類型的,比如#!/bin/bash指明是bash,#!/bin/sh則是sh);然後輸入命令(其中bash為shell的名稱,myshell.sh則為要執行的代碼):
bash
myshell.sh
2、直接執行腳本:
不過首先的加上可執行許可權(也許要root許可權,4情況而定),執行:
『伍』 執行shell腳本的方式主要是什麼
(1)輸入定向到Shell腳本
$ bash < 腳本名
(2)以腳本名作為參數
$ bash 腳本名 〔參數〕
(3)將Shell腳本的許可權設置為可執行,然後在提示符下直接執行它。
$ chmod a+x 腳本名
$ PATH=&PATH:.
$ 腳本名
『陸』 如何運行shell腳本
編寫好的shell腳本(如:test),可以採取兩種方式進行運行: 一、 $ sh test 一般不採用這種調用方式,尤其不採用「sh<test」的調用方式,因為這種方式將禁止shell讀取標准輸入。 也可以採用 $ 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腳本文件怎麼在後台運行不要在命令行里操作
在 shell 腳本中,可以使用以下方法在後台運行腳本:
在腳本名後面加上 & 符號,如:
./script.sh &
在腳本中使用 nohup 命令,虧帶如:
nohup ./script.sh &
使用 nohup 命令的好處是可以在銷睜蘆退出 shell 終端後繼續運行腳本。
如果要在後台運行的腳本不需要控制台輸出,可以將標准輸出和錯誤輸出重定向到 /dev/null,如:
nohup ./script.sh > /dev/null 2>&1 &
這樣就可以在後台早耐運行腳本,且不會在命令行輸出任何信息
『捌』 Linux Shell腳本的執行過程
用戶登錄時,將會取得一個 bash ,這個 bash 在系統中有一個全局唯一的ID,也就是進程的ID,使用命令 ps -ef 並配合 grep 來查看進程ID。 ps -ef|grep bash ,此命令還能查看進程對應的父進程ID,系統中所有進程的祖先進程都是INIT進程(進程ID=1),它是最先啟動運行的。
回到 bash 進程,也就是我們的命令行界面,進程的執行都有其附屬的執行環境,環境變數就屬於其中之一。並且環境變數是可以完全被子進程繼承的,也就是說,子進程可以使用父進程的環境變數,但是不能使用父進程的自定義變數。
簡而言之: 子進程繼承父進程的環境變數,不繼承父進程的自定義變數。
shell腳本有4種執行方式,不同的執行方式可能導致結果不一致
四種方式的執行結果如下: