Shell 常用語法

2022-02-19 13:02:50 字數 2256 閱讀 1738

賦值

file=$1  //=兩邊不能有空格

echo $file

邏輯判斷

表示式

1、if [ expression ]; then ... fi

//兩邊必須有空格

2、 if [[ expression ]]; then ... fi3、

if expression1 -o expression2; then

elif expression; then

else

fi組合判斷條件

-a: and

-o: or

!: 非

命令間邏輯關係

&& || //

和其他語言意義一致

eg1: 判斷a大於b並且小於c

1、 if (( a > b )) && (( a 2、 if [[ $a > $b ]] && [[ $a <$c ]]

3、 if [ $a -gt $b -a $a -lt $c ]

整數比較

-eq==

-ne!=

-gt>

-ge>=

-lt<

-le<=

檔案測試

-z string

字元是否為空,空為真,非空為假

-n string

是否為不空,空為假 非空為真

-e file

檔案是否存在

-f file

檔案是否為普通檔案

-d file

是否為目錄

-r file

檔案對當前使用者是否可讀

-w file

檔案對當前使用者是否可寫

-x file

檔案對當前使用者是否可執行

-z是否為空  為空則為真

-a是否不空  不空為真

迴圈

# for

for((i=1;i<=10;i++))

dosth

done

for i in $(seq 110)

for i in

awk

'begin

'for i in

`ls`;

for i in

f1 f2 f3 ;

list="god always love you!

"for i in

$list;

for file in /bin/*

;do

echo $line

done

# while

while true

dosth

done

#switch

case $char in

[a-z][a-z])

sth;;

[0-9])

sth;;

*)sth

esac

文字讀寫

for line in

`cat filename`

doecho $line

done

for line in

$(cat filename)

doecho $line

done

while read -r line   #-r選項保證讀入的內容是原始的內容,意味著反斜槓轉義的行為不會發生

doecho $line

done

< filename

遠端訪問

ssh faith@$ip "

grep 'decodeblob error' /data/datac20181106/gameserver*/error/*.log

note

$?  上個命令執行成功,則為0,否則為1-255間的乙個

$# 傳參個數

$n 引數值

((exp)) exp可以不加$引用

set -e 發生錯誤立刻退出

sh -n ***.sh  檢查shell語法

//

判斷上個命令執行是否成功

raise()

Shell 常用語法

bin bash 選擇編譯環境 正文 i 1 echo i 1 echo i 1echo i i2.1賦值a 5 變數定義的時候必須是等號兩邊沒有空格 b 2c a b 變數賦值 7 d a b 字串 5 2 2.2從鍵盤輸入變數值echo please input a filename read ...

shell 常用語法基礎

表 31.1.萬用字元 匹配0個或多個任意字元 匹配乙個任意字元 若干字元 匹配方括號中任意乙個字元的一次出現 ls dev ttys ls ch0?doc ls ch0 0 2 doc ls ch 012 0 9 doc注意,globbing所匹配的檔名是由shell展開的,也就是說在引數還沒傳給...

mysql常用語法 MySQL常用語法

更新資料 update 表名 set 健名 更改的值 where 建 刪除資料 delete from 表名 where 索引 create index 索引名稱 on 表名 鍵名 建立試圖 create view 檢視名 鍵,鍵 as select matchno,abs won lost fro...