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 變數 本地變數 只能在建...