LinuxShell——認識Shell腳本 摘要:本文主要介紹了Shell腳本的一些基本知識。 什麼是Shell腳本 shell腳本是利用shell的功能所寫的一個程式,這個程式是使用純文本文件,將一些shell的語法與指令寫在裡面,然後用正規表示法,管道命令以及數據流重導向等功能,達到所想要的處理 ...
LinuxShell腳本——認識Shell腳本
摘要:本文主要介紹了Shell腳本的一些基本知識。
什麼是Shell腳本
shell腳本是利用shell的功能所寫的一個程式,這個程式是使用純文本文件,將一些shell的語法與指令寫在裡面,然後用正規表示法,管道命令以及數據流重導向等功能,達到所想要的處理目的。
shell腳本就像早期dos年代的.bat,最簡單的功能就是將許多指令彙整寫一起,讓使用者很容易地就能夠一個操作執行多個命令,而shell腳本更是提供了數組、迴圈、條件以及邏輯判斷等重要功能,讓使用者可以直接以shell來寫程式。
基本結構
#!/bin/bash
這句話的作用是標明我以下寫的腳本使用的是BASH語法,只要寫的是基於BASH的Shell腳本都應該這樣開頭。
在Linux中預設的Shell環境就是BASH,所以在Linux裡面不加這一句也可以運行。如果把腳本放在預設環境不是BASH的環境中運行,又或者編寫腳本的不是純BASH語言,而是嵌入了其他語言,那麼這個腳本就不能正確執行了。所以Shell腳本都必須以“#!/bin/bash”開頭。
註釋
在Shell腳本中,除“#!/bin/bash”這行外,其他行只要以“#”開頭的都是註釋。
程式的主體
Linux的命令可以直接在腳本中執行。
執行腳本
賦予執行許可權,直接運行
這種方法是最常用的Shell腳本運行方法,也最為直接簡單。就是賦予執行許可權之後,直接運行。當然,運行時可以使用絕對路徑,也可以使用相對路徑。
如果將shell.sh放在PATH指定的目錄內,這樣就可以像Linux系統命令一樣,不用指定路徑直接運行了。
賦予執行許可權:
1 [root@localhost sh]# chmod 755 shell.sh
使用絕對路徑執行:
1 [root@localhost sh]# /root/sh/shell.sh
使用相對路徑執行:
1 [root@localhost sh]# ./shell.sh
通過bash命令調用運行腳本
這種方法的意思是直接使用bash或者sh去解釋腳本中的內容,所以這個腳本也可以正常運行。使用這種方法運行腳本,甚至不需要腳本文件有“執行”許可權,只要擁有“讀”權就可以運行了。
因為/bin/sh其實就是/bin/bash的一個鏈接,使用 sh shell.sh 就是告訴系統想要直接以bash的功能來執行shell.sh。
使用bash命令執行:
1 [root@localhost sh]# bash shell.sh 2 [root@localhost sh]# sh shell.sh
使用source命令執行
source命令或者“.”命令可以讀入腳本並執行腳本,即在當前Shell環境中載入並執行的相關腳本文件的命令及語句,而不是產生一個子Shell來執行文件中的命令。
該命令主要用於讓重新配置的環境變數配置文件強制生效。
使用source命令執行:
1 [root@localhost sh]# . shell.sh 2 [root@localhost sh]# source shell.sh
編寫一個腳本並執行
編寫腳本
使用vim命令創建並修改腳本文件:
1 [root@localhost ~]# vim test.sh
在vim編輯器里輸入腳本內容並保存:
1 #!/bin/bash 2 echo "Hello World"
執行腳本
使用sh命令執行腳本:
1 [root@localhost ~]# sh test.sh 2 Hello Word 3 [root@localhost ~]#