文章目錄
-
- 1. 列印如下文本:
- 前言
- shell腳本的概念
- shell腳本的結構
- 練習
- 面試題
本系列為循序漸進學運維系列的shell腳本實戰部分,從零帶你學腳本。
Shell 是一個用 C 語言編寫的程式,它是使用者使用 Linux 的橋梁。Shell 既是一種指令語言,又是一種程式設計語言。
Shell是一個指令解釋器,它在作業系統的最外層,負責直接與使用者進行對話,把使用者的輸入解釋給作業系統,并處理各種各樣的作業系統的輸出結果,輸出到螢幕回報給使用者。這種對話方式可是互動也可以是非互動式的
靜态語言:編譯型語言 如:c 、 c++ 、 java,
動态語言:解釋型語言 如: php 、 shell 、 python 、 perl
Shell 腳本(shell script),是一種為 shell 編寫的腳本程式。我們可以了解為把原來我們學的基礎指令,放入到一個檔案中,然後通過這個程式檔案去執行時,就是shell腳本或者說shell程式。
我們來看一個小例子:
[root@ecs-c13b ~]# vim test1.sh[root@ecs-c13b ~]# chmod 777 test1.sh [root@ecs-c13b ~]# sh test1.sh hello world![root@ecs-c13b ~]# cat test1.sh #!/bin/bash#"this is frist shell "echo "hello world!"mkdir /tmp/test1.txtecho "hello" > test1.txt
1.開頭:#!/bin/sh或#!/bin/bash
符号#!用來告訴系統,這個腳本需要什麼解釋器來執行,即使用哪一種 Shell。
2.注釋:
以#開頭的行表示注釋
3.指令行的書寫規則:
- 一行一條指令
- 若一行多個指令,用分号(;)分割
- 長指令可以使用反斜線字元(\)
- 要有相應的空格和注釋,便于閱讀
4. 執行shell腳本的方式:
1)作為可執行程式
将上面的代碼儲存為 test.sh,并 cd 到相應目錄:
chmod +x ./test.sh #使腳本具有執行權限./test.sh #執行腳本
注意,一定要寫成 ./test.sh,而不是 test.sh,運作其它二進制的程式也一樣,直接寫 test.sh,linux 系統會去 PATH 裡尋找有沒有叫 test.sh 的,而隻有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 裡,你的目前目錄通常不在 PATH 裡,是以寫成 test.sh 是會找不到指令的,要用 ./test.sh 告訴系統說,就在目前目錄找。
2)作為解釋器參數
這種運作方式是,直接運作解釋器,其參數就是 shell 腳本的檔案名,如:
/bin/sh test.sh
No Name Mark
1 zahangsan 58.52
2 李四 90.85
此處可以使用prinf
[root@ecs-c13b ~]# sh printf.sh
No Name Mark
1 zhangsan 50.52
2 lisi 90.85[root@ecs-c13b ~]# cat printf.sh #!/bin/bashprintf " %-5s %-10s %-4s\n " No Name Markprintf " %-5s %-10s %-4.2f\n" 1 zhangsan 50.522printf " %-5s %-10s %-4.2f\n" 2 lisi 90.85
問題解析:
格式替換符: %s %c %d %f
- shell腳本的執行方法
-
#!/bin/bash中 #! 表示什麼
#! 讀作 shebang,也念做 hashbang用于指定腳本的解釋器