歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Linux中Shell腳本的符號說明

Linux中Shell腳本的符號說明

日期:2017/2/28 15:29:19   编辑:SHELL編程

Linux中Shell腳本的符號說明

#!腳步中的第一句,指明執行腳本使用的程序

示例:#!/bin/bash

# 注釋,用於幫助信息或者忽略暫時不執行的語句

示例:# echo “hello”

# this is a comment

$ 變量替換符號

示例:a=123;echo $a

${} 變量正規表達式,避免變量名提前截斷

示例:${13}

$num 位置參數

示例:$0,$1,…,${10}

$? 最後一個命令的推出狀態,一般0表示正確,其他表示錯誤

示例: if [ $?-ne 0 ]; then

echo “encounter error”

fi

$! 最後一個命令執行的後台命令的ID

示例:pid=$!

$$ 運行腳本進程的ID

示例:pid=$$

$* 傳遞到腳步的參數,加雙引號時相當於”$1$2 …”

示例:echo “Theparameters are $*”

$@ 與$*相同,加雙引號相當於”$1”“$2” …

示例:a=$@

$# 傳遞到腳本中的參數個數,不包含$0參數

示例: echo “theparameter number is $#”

$- 保存當前shell的設置信息,如果結果中有i,則表示為交互式shell

示例: echo $-

; 將多個指令寫在同一行上的分隔符

示例:a=123;echo $a

;; 專用語case選項,作用類似於C語言switch語句中的break

示例: case${tao} in

a) echo “a” ;;

b) echo “b” ;;

esac

. 一個表示當前目錄,兩個表示上一級目錄

示例:cd ..

, 類似於C語言中的逗號表達式

示例:let “t1=((a=5+3,b=7-1,c=15/3))”;echo $t1

! 表示邏輯運算法“非”

示例:if [ “$?”!= “0” ]; then

echo “Execute error”

exit 1

fi

: 在bash中,這是一個內建命令,“什麼都不干“,但是返回狀態值為0

示例: :; echo$?; :> f.out 相當於cat/dev/null > f.out

? 通配符,匹配任意一個字符,但是不包括null

示例:ls f?n

‘’ 將其內容當作字符串,$和通配符均不擴展或者轉義

示例:a=1; echo ‘$a’ 結果為$a

“” 將其內容作為字符串,但是$可以擴展,通配符不可以

示例:b=”string”;echo “$b” 結果為string

`` 反引號(在鍵盤數字1左邊),其中的字符串會當成命令執行

示例:a=`date`;echo “$a”

() 指令群組,將一串指令括起來,執行時shell會產生subshell來執行它們

示例:(a=1;echo$a)

(()) bash的內建功能,用於算數運算

示例:a=10;echo$a;((a++)); echo $a

[] 同test作用相同,用於表達式真假的判斷

示例: if [ 1-eq 2];then

echo‘kill me’

fi

[[]] bash對[]的加強版,當中允許使用||和&&,並且可以使用正則表達式

示例:read ver

if [[ $ver > 5 && $ $ver

echo“that’s it”

fi

{} 指令群組,類似於(),但在當前shell中執行,還可以用於字符串的組合

示例: mkdir{userA, userB, userC} - {home, bin, data}

\ 正則表達式,匹配單詞的詞首和詞尾

示例: find ‘\’file

+ 加法,正則表達式中表示字符重復1~n次

示例: grep ‘10\+9’file

- 減法,標准輸入,cd命令中表示上一次的工作目錄

示例: expr 1 -2 + 3; tar -zxfv -; cd –

* 乘法,通配符,表示任何字符;一個字符重復0~n次

示例:let “var=2*3”; ls zha*t; grep ‘a1[0-9]*’

** 次方運算

示例:let “var=2**8”

/ 除法;目錄分隔符

示例:expr 10/2;cd /home/zc

% 取余

示例:expr 10 %2

= 賦值;字符串比較,在[]和[[]]中不同(參見==)

示例: a=”we”;if [ $a == ‘wee’ ]; then exit0 fi

== 字符串比較,同單個等號

示例: a=’we’

if[[ $a == w* ]]; then

echo“ok”

fi

!= 字符串比較,不等於

示例: if [ “$a”!= “$b” ]; then …

示例: cat>test

示例: 110

> 輸出重定向,文件存在覆蓋,不存在則新建

示例: ls>out 2>&1

>> 輸出重定向,文件存在追加,不存在則創建

示例: ls>>out

& 後台執行工作符

示例: tar zcvfdata.tar.gz data >/dev/null &

&& 邏輯與,短路操作符

示例: cp 1.txt2.txt && rm 1.txt && echo ‘success’

| 管道操作符

示例: cat file| grep ‘fan’

|| 邏輯或,短路操作符

示例: rm 1.txt|| echo ‘fail’

~ 根目錄

示例: cd ~

^ 正則表達式中匹配行的開頭

示例: grep ‘^home’file

\ 轉義字符,續行符號

示例: echo “\$A=$A\

This is the first line”;

Copyright © Linux教程網 All Rights Reserved