Shell學習之shell語法

2021-10-01 17:29:21 字數 2698 閱讀 6569

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 ...