#!/bin/bash //選擇編譯環境
*** //正文
i=1
echo
$i#1
echo
"$i"
#1echo
'$i'
#$i
2.1賦值a=5
#變數定義的時候必須是等號兩邊沒有空格
b=2c=$((a+b)) #變數賦值 7
d=$a+$b
#字串 5+2
2.2從鍵盤輸入變數值echo
"please input a filename: "
read filename
echo
$filename
2.3系統變數
變數含義
$0這個程式的執行名字
$n這個程式的第n個引數值,n=1…9
$*這個程式的所有引數
$#這個程式的引數個數
$$這個程式的pid
$!執行上乙個背景指令的pid
$?上乙個指令的返回值
2.4雙引號及單引號
echo
"$home
$path"
# 顯示變數值
/home/hbwork opt/kde/bin:/usr/local/bin:
echo '$home
$path'
#顯示單引號裡的內容
$home
$path
2.5變數表示式
$#源字串
echo
"the string length is "
$#字串長度
echo
"the 6th to last string is "
$#擷取從第五個後面開始到最後的字元
echo
"the 6th to 8th string is "
$#擷取從第五個後面開始的2個字元
echo
"after delete shortest string of start is "
$#從開頭刪除a到f的字元
echo
"after delete widest string of start is "
$#從開頭刪除a以後的字元
echo
"after delete shortest string of end is "
$#從結尾刪除f到j的字元
echo
"after delete widest string of end is "
$#從結尾刪除j前面的所有字元包括j
3.1test或
echo "please input a filename: "
read filename
test -f/-d
/-r/-w
/-x$filename
&& echo "the file is xx file"[-f
/-d/-r
/-w/-x
$filename
]&& echo "the file is xx file"
3.2 ifread grades
if [ $grades -ge 90 ] && [ $grades -le 100 ];then
echo
"your grade is excellent."
elif [ $grades -ge 80 ] && [ $grades -le 89 ];then
echo
"your grade is good."
else
echo
"your grade is badly."
fi
3.3 caseecho
"enter a number:"
read num
case
$num
in1)
echo
"1" ;; #注意,這裡是兩個分號
[2-9])
echo
"$num";;
*) echo
"other: $num";;
esac
#結束符
4.1 whilewhile condition
do ***
done
4.2 unitluntil condition
do ***
done
4.3 forfor n in `seq 2
8`do
echo
$ndone
4.4 退出迴圈
函式引數從1到
1
到n,$0 是檔名
返回值只能是整數,0成功,其他失敗
[function] funcname
()
6.1 whilewhile
read line # while read -r line
do#do必須在第二行
echo
$line
done
< filename
迴圈中執行效率最高,最常用的方法
注釋:這種方式在結束的時候需要執行檔案,就好像是執行完的時候再把檔案讀進去一樣。
6.2 管道
cat filename | while
read line
do#do必須在第二行
echo
$line
done
當遇見管道的時候管道左邊的命令的輸出會作為管道右邊命令的輸入然後被輸入出來。
6.3 for效率最高
方法一
for line in `cat filename` #注意這個符號不是單引號
do#do必須在第二行
echo
$done
方法二
for line in $(cat filename)
doecho
$line
done
注意1:轉入到linux的檔案注意轉換檔案格式,修改編碼格式方法詳見:【shell】shell指令碼編碼格式
**注意2:**for逐行讀和while逐行讀是有區別的: while能保留格式
$ cat t.txt
1111
3333
4444
$ cat t.txt | while
read line; do
echo
$; done
1111
3333
4444
$ for line in `cat t.txt`; do
echo
$; done
1111
3333
4444
#!/bin/bash
id=1
cmd="select count(*) from tempdb.tb_tmp where id=$"
cnt=$(mysql -uroot -p123456 -s
-e"$") #-s一行一行輸出,中間有tab分隔 -e執行sql語句
echo
$cnt
Shell 常用語法
賦值 file 1 兩邊不能有空格 echo file 邏輯判斷 表示式 1 if expression then fi 兩邊必須有空格 2 if expression then fi3 if expression1 o expression2 then elif expression then e...
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...