Linux Shell 腳本
一、 在終端顯示輸出
- 命令都是在終端會話中輸入並執行的。打開終端時會出現一個提示符。通常展示如下:
username@hostname$ 或者也可以配置成root@hostname #,或者簡單地顯示爲$或#。 $表示普通用戶,#表示管理員用戶root。root是Linux系統中權限最高的用戶。 #!/bin/bash
腳本中只有第一行來定義解釋該腳本所使用的解 釋器。- 腳本的執行方式有兩種。(1)將腳本名作爲命令行參數:
bash test.sh
(2)授予腳本執行權限,將其變爲可執行文件:chmod 755 test.sh ./test.sh.
- (1)使用chmod命令賦予腳本可執行權限:
$ chmod a+x test.sh
(2)該命令使得所有用戶可以按照下列方式執行該腳本:$ ./test.sh #./表示當前目錄
或者$ /home/path/test.sh #使用腳本的完整路徑
- shell使用分號或換行符來分隔 單個命令或命令序列。比如:
$ test1 ; test2這等同於:$ test1 $ test2
- echo是用於終端打印的最基本命令。默認情況下,echo在每次調用後會添加一個換行符:
$ echo "Welcome to Bash"
結果爲 Welcome to Bash 不實用雙引號也可以得出相同結果$ echo Welcome to Bash
或者單引號$ echo 'text in quotes'
- 如果需要打印像!這樣的特殊字符,那就不要將其放入雙引號中,而是使用單引號,或是在 特殊字符之前加上一個反斜線():
二、 使用變量與環境變量
使用大寫字母命名環境變量,使用駝峯命名法或小寫字母命名其他變量。可以使用env或printenv命令查看當前shell中所定義的全部環境變量
- 要查看其他進程的環境變量,可以使用如下命令:
cat /proc/$PID/environ
其中,PID是相關進程的進程ID - 假設有一個叫作gedit的應用程序正在運行。我們可以使用pgrep命令獲得gedit的進程ID:
$ pgrep gedit
12500那麼,你就可以執行以下命令來查看與該進程相關的環境變量:$ cat /proc/12501/environ
- 要想生成一份易讀的報表,可以將cat命令的輸出通過管道傳給tr,將其中的\0替換成\n:
$ cat /proc/12501/environ | tr '\0' '\n'
- 可以使用等號操作符爲變量賦值:
#!/bin/bash
#文件名:variables.sh
fruit=apple
count=5
echo "We have $count ${fruit}(s)"
輸出如下:
We have 5 apple(s)
5.獲得字符串的長度length=${#var}
$ var=12345678901234567890
$ echo ${#var}
20