一直都在各種環境各種場合聽人提起shell,因爲不懂,所以總是一一略過,直到有一天,師兄跟我說,這個測試哪用自己跑,寫個腳本就好。這時候我就想躲到角落默默畫圈,師兄,我不是想自己跑,是我不懂寫腳本。。。那時候,心裏吹起一陣虐風,暗暗下定決心,某一天我得自己寫個腳本,然後,故事就開始了。。。哈哈!
Shell環境能使用戶與操作系統的核心功能進行交互,shell腳本是一些文件,把我們需要執行的一系列命令寫入其中,然後通過shell來執行這些腳本。
1. 簡介
Shell腳本是以*.sh作爲文件結尾,文本開頭是#!/bin/Bash,#!被置於解釋器路徑之前,/bin/Bash是bash的路徑。將腳本作爲命令行參數的運行方式如下:
$sh script.sh
$sh /home/path/script.sh
腳本作爲sh的命令行參數來運行,那麼腳本中的shebang行也就沒有什麼用處了。爲了使shell腳本能夠自己獨立運行,需要具備可執行權限。要使腳本獨立運行,必須使用shebang行。它通過使用位於#!之後的解釋器來運行腳本,至於腳本的可執行權限可以通過以下方式來設置
$chmod a+x script.sh
$./script.sh
另一個注意點是,在Bash中,每個命令或者命令序列都是通過使用分號或者換行符來分隔的。
$cmd1
$cmd2
=$cmd1 ; cmd2
字符#指明註釋開始的地方,bash不予以執行。
2. 終端打印
$echo “welcome to Bash”
$echo ‘welcome to Bash’
$echo welcome to Bash
無論是單引號,雙引號還是沒有引號,echo都能在終端打印文本,但是這三種方式各有副作用:
① 雙引號:打印不出“!”
② 單引號:Bash不會對單引號中的變量求值,而只是照原樣顯示。
③ 沒有引號:打印不處“;”,因爲在Bash中,“;”代表另一條命令開始。
趣味echo-----彩色打印
我們可以使用echo命令行進行彩色打印,玩轉終端顯示界面。每種顏色都有對應的顏色號碼,比如:重置0,黑色30,紅色31,綠色32,黃色33,藍色34,洋紅35,青色36,白色37.
背景色的設置爲重置0,黑色40,紅色41,綠色42,黃色43,藍色44,洋紅45,青色46,白色47
$echo -e “\e[1;34m this is blue text ! \e[0m”其中34m是將文本設置爲藍色,0m是將文本重置。如果沒有\e[0m,則終端顯示就會變成藍色。
$echo -e “\e[1;41m this is red background ! \e[0m”
3. 環境變量
pgrep可以用來查詢進程的進程號。然後通過cat命令可以查看該進程相關的環境變量。
$pgrep gedit
$cat /proc/所獲得的進程號/environ
由於環境變量通常有很長一串,所以我們可以使用下面命名進行環境變量的顯示分隔。
$cat /proc/所獲得的進程號/environ |tr ‘\n’
環境變量未在當前進程中定義,而是從父進程繼承而來,則使用export命令來設置環境變量。
$echo $PATH
$export PATH=”$PATH:/home/usr/bin”
4. 補充內容
① 識別當前的shell版本
$echo SHELL
② 修改Bash提示字符串
$cat ~/.bashrc |grep PS1
PS1=’${debian_chroot:+{$debian_chroot}\u@\h:\w\$}’
\u代表用戶名,\h代表主機名,\w代表當前工作目錄
5. 通過shell進行數學運算
Let命令可以直接執行基本的算術操作。
$let result=a+b
$echo $result
Bc命令可以進行更加高級的運算。
$echo “4 * 1.5” | bc
$echo “scale=2;3/8” | bc #精確到小數點後兩位
$echo “obase=2;100” | bc #將100轉化爲2進制
$echo “sqrt(100)” | bc #100開平方
$echo “10^2” | bc #10的乘方