shell腳本

博文結構
什麼是shell
簡單編輯shell

一.什麼是shell及作用

Shell字面理解就是個“殼”,是操作系統(內核)與用戶之間的橋樑,充當命令解釋器的作用,將用戶輸入的命令翻譯給系統執行。Linux中的shell與Windows下的DOS一樣,提供一些內建命令(shell命令)供用戶使用,可以用這些命令編寫shell腳本來完成複雜重複性的工作

  • 什麼是腳本?
    腳本就是由Shell命令組成的件,這些命令都是可執行程序的名字,腳本不用編譯即可運行。它通過解釋器解釋運行,所以速度相對來說比較慢。

  • shell腳本的優點

1.自動化管理的重要依據
2.追蹤與管理系統的重要工
3.簡單偵測功能
4.連續指令單一化
5.簡易的數據處理
6.跨平臺支持與學習歷程較短

  • 編寫shell腳本注意事項

    1. 指令的執行是從上而下、從左而右的分析與執行;
    2. 指令的下達就如同之前提到的:指令、選項與參數間的多個空白都會被忽略掉;
    3. 空白行也將被忽略掉,並且 [tab] 按鍵所推開的空白同樣視爲空白鍵;
    4. 如果讀取到一個 Enter 符號(CR),就嘗試開始執行該行(或該串)命令;
    5. 至於如果一行的內容太多,則可以使用“ [Enter] ”來延伸至下一行;
    6. “ # ”可做爲註解!任何加在 # 後面的數據將全部被視爲註解字而被忽略!
  • 執行shell腳本分爲四點

直接指令下達: shell.sh 件必須要具備可讀與可執行(nx) 的權限,然後:
絕對路徑:使用/home/dtsai/shell.sh 來下達指令;
相對路徑:假設工作目錄在/home/dmtsai/,則使用.shel.sh 來執行
*變量"PATH"功能:將shell.sh放在PATH指定的目錄內,例如: ~/bin/
以bash程序來執行:通過“bash shell,sh”或“sh shell.sh "來執行

二.簡單編輯shell

[root@localhost ~]# vim a.sh
#!/bin/bash
echo -e  "hellow \a \n" 
exit 0
[root@localhost ~]# chmod a+x a.sh 
[root@localhost ~]# sh a.sh 
hellow  
  1. 第一行 #!/bin/bash 在宣告這個 script 使用的 shell 名稱:
  2. 程序內容的說明:
  3. 主要環境變量的宣告:建議務必要將一些重要的環境變量設置好,我個人認爲, PATH 與 LANG (如果有使用到輸出相關的信息時)是當中最重要的!如此一來,則可讓我們這支程序在進行時,可以直接下達一些外部指令,而不必寫絕對路徑呢!
  4. 主要程序部分就將主要的程序寫好即可
  5. 執行成果告知(定義回傳值)一個指令的執行成功與否,可以使用$?這個變量來觀察~那麼我們也可以利用 exit 這個指令來讓程序中斷,並且回傳一個數值給系統

\a 發出警告聲;\n 換行且光標移至行首;

對談式腳本:變量內容由使用者決定量
隨日期變化:利用date進行件的創建
數值運算:簡單的加減乘除

對談式腳本:變量內容由使用者決定量

[root@localhost ~]# vim b.sh
#!/bin/bash
read -p "Please input your first name: " firstname
read -p "Please input your last name: " lastname
echo -e "\nYour full name is: ${firstname} ${lastname}"
[root@localhost ~]# sh b.sh 
Please input your first name: x
Please input your last name: a

Your full name is: x a
  • 隨日期變化:利用date進行件的創建
[root@localhost ~]# vim x.sh
#!/bin/bash
echo -e "I will use 'touch' command to create 3 files." 
read -p "Please input your filename: "
fileuserfilename=${fileuser:-"filename"}
date1=$(date --date='2 days ago' +%Y%m%d)
date2=$(date --date='1 days ago' +%Y%m%d)
date3=$(date +%Y%m%d)

file1=${filename}${date1}
file2=${filename}${date2}
file3=${filename}${date3}

touch "${file1}"
touch "${file2}"
touch "${file3}"

 filename: a
[root@localhost ~]# ls              \\可以看到創建了3天的件
20191203  20191205         a.sh  initial-setup-ks.cfg  公共  視頻  檔  音樂
20191204  anaconda-ks.cfg  b.sh  x.sh                  模板  圖片  下載  桌面
  • 數值運算:簡單的加減乘除
[root@localhost ~]# vim q.sh
#!/bin/bash
echo -e "You SHOULD input 2 numbers, I will multiplying them! \n"
read -p "first number: " firstnu
read -p "second number: " secnu
total=$((${firstnu}*${secnu}))
echo -e "\nThe result of ${firstnu} x ${secnu} is ==> ${total}"
[root@localhost ~]# sh q.sh 
You SHOULD input 2 numbers, I will multiplying them! 

first number: 2
second number: 3

The result of 2 x 3 is ==> 6
  • 利用test指令的測試功能

shell腳本

shell腳本

shell腳本

shell腳本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章