shell指令碼就是將完成乙個任務的所有的命令按照執行的先後順序,自上而下寫入到乙個文字檔案中,然後給予執行許可權。
shell指令碼的命名:
名字要有意義;
不超過30個位元組
.sh結尾
名字不要太長
區分大小寫
shell指令碼格式:
shell指令碼開頭必須指定指令碼執行環境 以#!
這個特殊符號組合來組成。
如:#!/bin/bash
指定該指令碼是執行解析由/bin/bash
來完成的;
注釋
shell指令碼中,最好加入指令碼說明字段
#!/bin/bash
#author: hardy9sap
#created time: 2019/08/27 12:27
#script description: first shell study script
(1)給予執行許可權
a). filename
b) ./filename
(2)直譯器執行(無需許可權)
a)bash filename
bash -x filename debug模式
b) sh filename
~: 家目錄 # cd ~ 代表進入使用者家目錄
!: 執行歷史命令 !
! 執行上一條命令
$: 變數中取內容符
+ - * \ %: 對應數**算 加 減 乘 除 取餘數
&: 後台執行
*: 星號是shell中的萬用字元 匹配所有
?: 問號是shell中的萬用字元 匹配除回車以外的乙個字元
;: 分號可以在shell中一行執行多個命令,命令之間用分號分割
|: 管道符 上乙個命令的輸出作為下乙個命令的輸入 cat filename |
grep
"abc"
\: 轉義字元
``: 反引號 命令中執行命令 echo "today is `
date +%f`"
' ': 單引號,指令碼中字串要用單引號引起來,但是不同於雙引號的是,單引號不解釋變數
" ": 雙引號,指令碼**現的字串可以用雙引號引起來
| 管道符在shell中使用是最多的,很多組合命令都需要通過組合命令來完成輸出。管道符其實就是下乙個命令對上乙個命令的輸出做處理。
> 重定向輸入 覆蓋原資料
>> 重定向追加輸入,在原資料的末尾新增
< 重定向輸出 wc -l < /etc/passwd
<< 重定向追加輸出 fdisk /dev/sdb <
expr 命令:只能做整數運算,格式比較古板,注意空格
[root@baism ~]
# expr 1 + 1
2[root@baism ~]
# expr 5 - 2
3[root@baism ~]
# expr 5 \* 2 #注意*出現應該轉義,否則認為是萬用字元
10[root@baism ~]
# expr 5 / 2
2[root@baism ~]
# expr 5 % 2
1使用bc計算器處理浮點運算,scale=2代表小數點保留兩位
[root@baism ~]
# echo "scale=2;3+100"|bc
103[root@baism ~]
# echo "scale=2;100-3"|bc
97[root@baism ~]
# echo "scale=2;100/3"|bc
33.33
[root@baism ~]
# echo "scale=2;100*3"|bc
300雙小圓括號運算,在shell中((
))也可以用來做數**算
[root@baism ~]
# echo $(( 100+3))
103[root@baism ~]
# echo $(( 100-3))
97[root@baism ~]
# echo $(( 100%3))
1[root@baism ~]
# echo $(( 100*3))
300[root@baism ~]
# echo $(( 100/3))
33[root@baism ~]
# echo $(( 100**3)) #開方運算
1000000
exit num 退出指令碼,釋放系統資源,num代表乙個整數[0, 255],代表返回值。
一般0表示命令執行正常,非0表示命令執行錯誤
shell指令碼學習之語法
一 條件測試 1 條件測試 test或 命令test可以測試乙個條件是否成立,若測試結果為真,則退出碼為0,若測試結果為假,則為1 在比較兩個字串是否相等時,建議加上雙引號,且在表示式兩邊均加上相同的乙個字母 test x data xhello 注意命令和變數的空格,重要重要重要!命令後面加空格,...
shell學習之 shell呼叫shell
2008 05 06 14 43 18 分類 linux 標籤 字型大小 大中小訂閱 fork是最普通的,就是直接在指令碼裡面用 directory script.sh來呼叫script.sh這個指令碼.執行的時候開乙個sub shell執行呼叫的指令碼,sub shell執行的時候,parent ...
Shell學習之Shell特性 一
這個不說了,我們在輸入命令的時候,按tab鍵補全。history 歷史命令記錄 上下鍵 切換歷史命令 number 執行對應number的歷史命令 string 重新執行一遍含有string的最近的歷史命令 執行上一條命令 alias 檢視臨時別名 alias 別名 命令 定義別名 unalias ...