shell腳本執行

shell腳本執行

對于我們這些小白而講,shell腳本無疑是最令人頭疼的事了,我再這里講一下shell腳本運行要注意的哪些。

shell腳本就好像c++,java代碼一樣,按照從上到下然后從左到右的順序執行。就像我們日常讀書一樣。如果shell命令遇見了子進程(嵌套代碼),程序就會跟著順序進入子進程。當子進程完成后,回到父進程,并且把父進程所需要的參數提交。

shell執行的方式

shell一共有4種執行方式

(1)bash file 或者 sh file 當腳本寫好以后,文件創建時默認是沒有執行的,運行腳本需要執行權限,所以直接運行就不行。要想執行就需要用這種方法。 示例:

shell腳本執行

當腳本開頭沒有解釋器的時候,這就可以用這種方法來執行。

(2)絕對路徑或者./ file 執行文件再當前目錄下執行,可以直接用./ file去執行這個文件。其中 . 代表的是父目錄,在這表現為相對路徑。如果執行文件不再該目錄下,那就使用絕對路徑。在這種方法執行文件的時候用戶必須附有該執行權限。

chmod +x file

這條命令可以給用戶加上執行權限。然后文件內容頭要有解釋器。

shell腳本執行

shell腳本執行

(3)可以用管道或者重定向的方法

sh<file 或者 file|sh

這種方法雖然感覺跟第一種方法一樣,但是好多時候可以用這種方法做到精簡代碼。

(4)source file 或者 . file ,如果腳本里面有嵌套,那么就會生成一個子進程。shell腳本中的各個代碼按順序執行,再執行時會創建一個進程。當語句中嵌套其他的有其他腳本,那么這些語句默認情況下會開啟一個子進程。而用這兩個命令不會打開子進程,它會直接在這個父進程中運行。所以這兩個命令可以將其嵌套程序的變量,返回值直接傳遞到父進程中使用。要注意的是. 后面一定要有空格。

pstree -p 查看進程

為了方便我們查看進程,我們在子腳本中設置休眠時間

sleep 設置休眠時間

shell腳本執行

用./3.log命令運行后車看子進程 

shell腳本執行

用source 3.log運行的結果

shell腳本執行

其中4.log是3.log的嵌套函數,由結果圖可以看出,該命令沒有開啟子進程

原創文章,作者:phosphor,如若轉載,請注明出處:http://www.www58058.com/77563

(2)
phosphorphosphor
上一篇 2017-06-05
下一篇 2017-06-05

相關推薦

  • Linux程序包管理(二)YUM使用

    YUM Linux程序包管理(二) 說完了程序包管理以及rpm的相關使用,接下來說說rpm的前端管理工具 YUM YUM是什么? &emsp;&emsp;&emsp;前面提到,yum是rpm程序包管理器的前端管理工具,那么yum到底是什么?又能做什么呢? YUM:yellow dog,Yellowdog Update Mod…

    Linux干貨 2016-06-01
  • 馬哥教育網絡班20期第2周課程練習

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關  示例演示。 linux上文件管理命令包括: ls,cat,pwd,cp,rm,cd,head,tail,more,less,cut,which,whereis,find,mkdir,mv; 1、ls 命令;顯示文件/文件夾清單   例如:如下顯示列出根目錄下的文件及目錄…

    Linux干貨 2016-06-23
  • 虛擬化技術介紹、Xen的簡單實現

    虛擬化是什么? 虛擬化是一種資源管理技術, 是將計算機的各實體資源, 如服務、網絡、內存及存儲等, 予以抽象、轉換后呈現出來, 打破實體之間的不可切割的障礙, 使用戶可以比原本的配置更好的方式來應用這些資源。這些資源的新虛擬部分是不受現有資源的架設方式, 地域或物理配置所限制。一般情況下, 虛擬化資源包括計算能力和數據存儲 —<轉自維基百科&…

    2016-05-31
  • 馬哥教育網絡班21期+第三周博客作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 方法1: [root@zabbix ~]# who |awk '{print $1}'|sort -n|uniq monitor root 方法2: [root@zabbix ~]#…

    Linux干貨 2016-07-22
  • apache httpd 站點搭建

    apache  httpd 站點搭建 apache  httpd 站點搭建 1 §·httpd程序包使用yum安裝 1 ※·[root@www ~]# yum  install  httpd.x86_64 1 ※·關于生成的配置文件簡單介紹: 2 §·http主配置文件介紹 3 ※·主配置文件分為三大部分: 3 §·h…

    Linux干貨 2016-12-05
  • 8-4 作業

    1.用正則表達式表示IP地址 2.用正則表達式表示手機號11 13 17 15  18 3.用正則表達式表示身份證號18   4.用正則表達式表示郵箱  

    Linux干貨 2016-08-08
欧美性久久久久