- Linux自動化運維:Shell與Ansible(微課版)
- 楊寅冬主編
- 1543字
- 2024-07-26 17:04:21
1.2.2 創建和執行Shell腳本
1. Shell腳本基本格式
Linux Shell腳本是一種在Linux操作系統中用Shell編寫和運行的程序。Shell腳本由一系列Shell命令和語句組成,可以完成各種復雜的操作。例如,可以編寫Shell腳本來自動備份文件、安裝軟件、批量執行命令等。Shell腳本可以用來自動執行任務、執行重復性操作、管理系統或應用程序等。
Shell命令是指Shell支持的各種命令,如cd、ls、echo等。學習Shell編程時,需要了解這些命令的用法和參數,以便使用它們來控制操作系統和運行程序。
在Shell中,有兩種類型的命令:內置命令和外置命令。內置命令是Shell本身具有的命令,它們由Shell程序直接執行,而不需要調用其他程序。例如,cd命令是一個內置命令,它用于切換當前工作目錄。外置命令是Shell并不具有的命令,它們需要調用外部程序來執行。例如,ls命令是一個外置命令,它用于列出文件和目錄的信息。

V1-2 創建和執行Shell腳本
通常,內置命令的執行效率比外置命令高,因為它們不需要調用外部程序。但是,外置命令提供了更多的功能和更多的選項,也更常用。
在Linux操作系統中,type命令用于查詢命令的類型,可以查看指定命令是內置命令還是外置命令,以及別名、關鍵字等信息。例如,可以使用type命令來查看一個命令是內置命令還是外置命令。
[opencloud@server ~]$ type cd cd is a shell builtin [opencloud@server ~]$ type ls ls is /bin/ls
Shell語法是指Shell編程語言的語法規則,包括變量、流程控制、函數等方面的語法。學習Shell編程需要掌握Shell語法,這樣才能編寫出有效的Shell腳本。
編寫Shell腳本有許多方法,常見的方法就是使用文本編輯器。Linux操作系統中通常使用vi、vim文本編輯器,也可以使用Sublime Text、Visual Studio Code等跨平臺文本編輯器來編寫Shell腳本。在文本編輯器中輸入腳本內容,并使用.sh或.bash作為文件擴展名保存腳本。
下面是一個簡單的Shell腳本的基本結構。
#!/bin/bash cat<<EOF This is a comment line This is also a comment line EOF # echo "hello world" echo "hello world"
在計算機領域中,Shebang或hashbang(#!代碼的英文讀法)是一個由井號和感嘆號構成的字符序列#!,它出現在文本文件第一行的前兩個字符位置,用于告訴操作系統使用哪個解釋器。文件中存在#!的情況下,類UNIX和Linux操作系統的程序載入器會分析#!后的內容,將這些內容作為解釋器指令,調用該指令,并將載有#!的文件路徑作為該解釋器的參數。#!是一項操作系統特性,可用于任何解釋型語言,如Shell、Python、Perl等。
在Shell腳本中,#!/bin/bash這一行指定了腳本的解釋器為/bin/bash,腳本文件在執行時會實際調用/bin/bash程序,這一行內容也是Shell腳本的標準起始行。
2. Shell注釋
在Shell腳本中使用注釋可以幫助用戶更好地理解腳本的功能,并使腳本更易于維護。在Shell腳本中,可以使用以下方法來注釋多行語句。
(1)使用#字符在每行的開頭注釋。在每行的開頭添加#字符可以將整行注釋掉。
# This is a comment line # This is also a comment line # This is yet another comment line
(2)使用<<將多行語句封裝在一對字符串中。
cat << EOF This is a comment line This is also a comment line This is yet another comment line EOF
在這個腳本中,<<EOF和EOF之間的內容都會被視為注釋,不會被解釋器執行。注釋標記的結束符必須與開始符完全一致??梢詫OF替換為其他字符串,只要在注釋的開始和結束處使用相同的字符串即可。
3. 執行Shell腳本
在腳本文件的第一行指定執行腳本所需的Shell類型,并使用#!開頭。例如,如果使用bash命令執行腳本,則可以在腳本的第一行添加#!/bin/bash,這樣就可以像執行任何其他命令一樣執行腳本了。
在使用任何方法執行腳本之前,需要確保腳本文件具有可執行權限。如果腳本文件名為myscript.sh,則可以執行chmod +x myscript.sh命令為腳本文件賦予可執行權限。
在終端中可以使用絕對路徑或相對路徑來執行腳本。例如,如果腳本文件名為myscript.sh,則可以使用以下方法執行腳本。
在終端中使用絕對路徑執行腳本時,可以在任何位置執行腳本,而不僅僅在腳本文件所在的目錄執行腳本,此時將腳本的絕對路徑作為參數傳遞給bash命令即可。
[opencloud@server ~]$ bash /path/to/myscript.sh
在終端中使用相對路徑執行腳本時,需要將命令行的路徑切換到腳本目錄,腳本文件應位于當前目錄中,以“。/文件名”的方式執行腳本。
[opencloud@server ~]$ pwd /path/to/ [opencloud@server ~]$ ls myscript.sh [opencloud@server ~]$ ./myscript.sh
- 電腦組裝與系統安裝
- 鴻蒙生態:開啟萬物互聯的智慧新時代
- Puppet實戰
- 開源安全運維平臺OSSIM疑難解析:入門篇
- Ubuntu Linux操作系統
- SharePoint 2013 應用開發實戰
- 竹林蹊徑:深入淺出windows驅動開發
- Learning BeagleBone
- Linux網絡操作系統項目教程(RHEL 7.4/CentOS 7.4)(第3版)(微課版)
- Less Web Development Essentials
- Getting Started with UDK
- 基于Arduino的嵌入式系統入門與實踐
- Website Development with PyroCMS
- 電腦辦公(Windows 7 + Office 2013)入門與提高
- Getting Started with Raspberry Pi Zero