Shell程式設計

2021-09-01 06:53:07 字數 1745 閱讀 4401

cat t1

echo $1 $2 $3

set m1 m2 m3

echo $1 $2 $3

sh t1 -3 a1 a2 a3

a1 a2 a3

m1 m2 m3

shell 中雙引號(" ") 單引號(' ') 倒引號(` `)

1.雙雙引號 除了$ ,倒引號, \ 保留其特殊功能外 其餘做普通字元處理

2.單引號所有字元都作為普通字元

3.倒引號 `pwd` 解釋命令 如果巢狀 內層必須要(\)轉義 my = `echo my = \`pwd\``

順序操作符

邏輯與(&&)成功返回0 步成功返回1

檔案測試

-r file 可讀

-w file 可寫

-x file 可執行

-f file 普通檔案

-dfile 目錄檔案

-pfile fifo檔案

-s file 不是空檔案

字串測試

str 不是空字串

str1 = str2 str1等於str2(等號前後有空格)

str1 != str2 str1不等與str2

-n str 長度不為0

-z str 長度為0

eg: [ "$1" = "$2" ] or test "$1" = "$2"

[ "$1" = "yes" ] or test "$1" = "yes"

數值測試

n1 -eq n2 n1==n2

n1 -ne n2 n1!=n2

n1 -lt n2 n1

n1 -le n2 n1<=n2

n1 -gt n2 n1>n2

n1 -ge n2 n1>=n2

[ "$1" -gt 10 ] or test "$1" -gt 10

邏輯操作符號組合測試語句

! 非-a 與(and)

-o 或 (or)

( ) 優先括號前後有空格 並且用\ 轉義

eg:[ ! "$1" -le 0 ] or ! test "$1" -le 0

[ -f "$1" -a -w "$1"] or test -f"$1" -a -w "$1"

[ \( "$a" -gt 0 -a "$a" -lt 10 \) -a "$a" -ne 5 ]

case

case $1 in

file) echo "is file" ;;

dir) echo "is dir" ;;

*) echo "others";;

esac

for

for people in tom jack john lucy do

echo $people

done

for i in *.c do

cat $i

done

dir=$1;shift

if [ -d $dir ]

then cd $dir

for name #for name == for name in $ *

doif [ -f $name ]

then cat $name

echo "end of $/$name"

else echo "invalid file name:$/$name"

fidone

else echo "bad directory name:$dir" fi

Shell程式設計 shell特性

linux會預設記錄1000條歷史記錄,可通過 echo histsize 檢視,如果講histsize更改為2000,那麼會預設儲存2000條。1000條記錄儲存在家目錄的 bash history 中,僅當使用者正常退出當前shell時,當前shell中執行的命令才會儲存到 bash histo...

Shell程式設計 Shell函式

shell函式 1.將命令序列按格寫在一起 2.可方便重複使用命令序列 3.shell函式定義 function 函式名 4.呼叫函式的方法 函式名 引數1 引數2 5.shell函式應用示例 1 兩個數字求和 要求 通過sum 定義函式 兩個數求和 方法一 root localhost vim d...

Shell程式設計

1 建立指令碼 vi emacs等即可 bin sh 2 shell變數 對shell來講,所有的變數的取值都是乙個字串 shell是一種解釋性語言,變數無需事先定義 shell中的系統變數 程式命令列引數的數目 儲存前乙個命令的返回值 0 當前程式名 以 1 2 形式儲存所有輸入的命令列引數 以 ...