shell程式設計 1 基礎

2021-07-22 09:02:25 字數 3431 閱讀 9771

bash的內部命令:shell在啟動時就調入記憶體。

bash的外部命令:使用時才從硬碟中讀入記憶體。

命令萬用字元:

? : 匹配任意乙個字元

: 匹配括號中的任意單字元

* : 匹配任何的字元或者字串,包括空字串

shell程式本質是普通文字檔案,加上可執行許可權後可以讓shell執行文字中的程式。

#! shell compiler

# filename

shell statements

t.sh:

#!/bin/bash

#t.sh

echo

"hello linux, "

echo

"i love you"

$ chmod +x t.sh

$ ./t.sh

hello linux,

i love you

shell語言是一種解釋型語言,

shell變數有:區域性變數、環境變數、位置變數。

shell變數沒有資料型別,變數賦值之後只需要加上$即可使用,不帶空格的字串可以不加引號。

環境變數的定義:export var=value

輸出:echo $var (重啟失效)

在/etc/profile中可以定義環境變數

位置變數:在shell程式執行時傳入的引數

$n n:1–9

$ cat dex.sh

#!/bin/bash

#location var

echo

$1echo

$2$ ./dex.sh hello world

hello

world

shell算術運算子中的**代表兩個變數的冪運算。

$ cat cal.sh 

#/bin/bash

#calculate

a=12

echo $[

$a**$1]

b=$[

$a*$1]

echo $b

$ ./cal.sh 2

14424

echo中的輸出字元

\c:末尾加上\c表示這一行輸出完畢以後不換行

read命令可以讀取標準輸入到乙個變數。

$ read var

this is a read test

$ echo

$var

this is a read test

$ read var1 var2 var3

$ echo

$var1

this

$ echo

$var2

is$ echo

$var3

commond 1 > filename 標準輸出重定向到檔案中

commond 2 > filename 標準輸出的錯誤重定向到檔案中

commond > filename 2>&1 標準輸出和標準錯誤重定向到檔案中

$ ls > doc2 2>&1

command < filename1 > filename2 將file1作為標準輸入,file2作為標準輸出

雙引號和單引號的區別:

$ echo "$var1"

this

$ echo '$var1'

$var1

$ echo "hello \"linux\""

hello "linux"

$ echo 'hello \"linux\"'

hello \"linux\"

symbol

effect

eqequal 相等

nenot eqaul 不等

leless or equal 小於等於

gegreater or equal 大於等於

gtgreater than 大於

ltless than 小於

* 邏輯測試

symbol

effect

aand 邏輯與

oor 邏輯或

!非 邏輯否

* 字串比較

symbol

effect=相等

!=不等

-z空串

-n非空

if 語句

格式:

if condition1

then command1

fiif condition1

then command1

elif condition2

then command2

else command3

fi

for迴圈

格式:

for var in

list

docommand1

command2

done

until迴圈——直到條件成真的時候才停下來。

格式:

until condition

docommond1

done

while迴圈
while condition

docommand

done

#!/bin/bash

#rxw

if test -r $1

then

echo this file can be read.

else

echo this file can not be read.

fiif test -w $1

then

echo can be wrote.

else

echo can not be wrote.

fiif test -x $1

then

echo can be executed.

else

echo can not be executed.

fi

#!/bin/bash

#ls sh file

files=`ls *.sh`

for file in

$files

doecho

$file

done

$ cat ls.sh

#!/bin/bash

#ls for 0.5s

for i in

do ls

usleep 500000

#or : sleep 0.5

done

Shell程式設計基礎 1

shell指令碼程式設計學習入門是本文要介紹的內容,我們可以使用任意一種文字編輯器,比如gedit kedit emacs vi等來編寫shell指令碼,它必須以如下行開始 必須放在檔案的第一行 bin sh 注意 最好使用 bin bash 而不是 bin sh 如果使用tc shell改為tcs...

Shell程式設計基礎(1)

自己的學習筆記,就當做乙個備份吧 1.檢視linux支援哪些shell 2.type 命令 檢視乙個命令是否是內建命令 type cd 3.本地變數的定義 變數名 值 中間不要有空格 xx 19 定義變數 echo xx unset xx 取消變數 本地變數只影響當前shell echo 顯示當前程...

shell程式設計1

1 雙引號 雙引號內的內容除了 轉義符 倒引號 這三個保留特殊功能,其他的均作為普通字元。2 單引號 單引號裡的內容全部作為普通字元。3 倒引號 引號內的內容當做 shell 命令列來解釋。4 美元符 變數符,如 a表示變數 a的值。變數字元長度超過 1個時,用 括起來。5 變數 本地變數 只能在建...