第十講 shell 腳本簡介
文章目錄
- 第十講 shell 腳本簡介
-
- 一、 shell 腳本簡介
-
- shell 腳本是什麼
- shell 腳本有什麼用
- shell 指令本質
- 建立一個 helloworld 指令
- shell 腳本語言與 c 語言的差別
- 建立一個 shell 腳本
- shell 腳本的啟動方式
一、 shell 腳本簡介
shell 腳本是什麼
shell 腳本與 windows 下的批處理相似,就是将各類指令預先放到一個檔案中,友善一次性執行的一個程式檔案。百度百科
是由 shell 指令按一定文法組成的檔案。
shell 腳本有什麼用
- 批處理檔案/整合指令
- 軟體啟動
- 性能監控
- 日志分析
shell 指令本質
内置指令/外部指令
可以通過
type
指令檢視指令是否是内置指令
例如:
type cd
傳回的是:cd is a shell builtin
type ifconfig
傳回的是:ifconfig is /sbin/ifconfig
shell 指令是通過預設的路徑去查找指令,指令的路徑在 PATH 變量當中,可以通過指令
echo $PATH
可以列印目前的預設的路徑
建立一個 helloworld 指令
- 輸入指令
建立檔案vim shell_helloword.c
- 輸入以下代碼
#include <stdio.h> int main(void) { printf("hello world!\n"); return 0; }
- 儲存退出編輯器
- 編譯 shell_helloword.c 檔案(
)gcc -o shell_helloword shell_helloword.c
- 輸入指令
将檔案 shell_helloword 複制到 PATH 的任意路徑中(注意:這裡不知道路徑的直接複制我打的這句話就行,需要管理者權限)sudo cp shell_helloword /usr/local/bin/
- 然後在終端輸入
shell_helloword
- 終端傳回:hello world!
- 腳本成功!!!
- 最後試驗成功将我們複制進去的東西删掉
(PS:rm 指令不要亂用,特别是加了 sudo 的,否則删除整個系統就不好了)sudo rm -rfv /usr/local/bin/shell_helloword
shell 腳本語言與 c 語言的差別
shell 腳本語言是一種解釋型語言,c 語言是一種編譯型語言
有關編譯型和解釋性語言差別可以看這:編譯型語言和解釋型語言差別,總的來說就是編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把源代碼編譯成機器語言的檔案,之後如果要運作時,直接使用編譯結果,而解釋型語言是代碼在執行時才被解釋器一行行動态翻譯和執行。
Linux shell 解釋器
檢視 Linux 内的 shell 解釋器可以用指令
cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
建立一個 shell 腳本
- 建立檔案 shellscript.sh (
)vim shellscript.sh
- 輸入以下代碼
#!/bin/bash echo "hello word!\r\n"
- 儲存并退出檔案
- 給檔案添加可執行權限(
)sudo chmod +x shellscript.sh
- 在終端輸入指令
執行腳本檔案./shellscript.sh
- 得到輸出結果
hello word!\r\n
- 腳本建立完成
shell 腳本的啟動方式
- 當程式運作
./shellscript.sh
- 指定解釋器運作
/bin/bash shellscript.sh
/bin/rbash shellscript.sh
- source 指令 和
source shellscript.sh.
. shellscript.sh