我們一起來學shell - 初識shell
我們一起來學shell - shell的變數
我們一起來學shell - shell的條件判斷
我們一起來學shell - shell的迴圈控制
我們一起來學shell - shell的陣列
我們一起來學shell - shell的函式
我們一起來學shell - shell的併發及併發控制
我們一起來學shell - 正規表示式
for迴圈的運作方式,是將序列的元素意義取出,依序放入指定的變數中,然後重複執行含括的命令區域(在do和done 之間),直到所有元素取盡為止。其中,序列是一些字串的組合,彼此用$ifs所定義的分隔符(如空格符)隔開,這些字串稱為字段。
語法結構
for 變數 in 值集合
do 執行命令
done
列出 var 目錄下各子目錄占用磁碟空間的大小
#!/usr/bin/env bash
dir=
"/var"
for i in
$(ls $)do
[ -d "$/$i"]&&
du -sh $/$i
done
用 for 迴圈建立 demo1-demo10 目錄,然後在 demo1-demo10 目錄下建立 test1-test10 目錄
#!/usr/bin/env bash
for i in
$(seq 1 10)
domkdir /tmp/demo$
for j in
$(seq 1 10)
domkdir /tmp/demo$/test$
done
done
for迴圈 - 99 乘法表
#!/usr/bin/env bash
for(( i=
1; i<=
9; i++
))do
for(( j=
1; j<=i; j++
)) do
let"k=$*$"
echo -ne "$*$=$\t"
done
echo
" "done
語法格式
while 條件測試
do 執行命令
done
while迴圈 - 99 乘法表
#!/usr/bin/env bash
a=1b=1
while
(( a <=9))
dowhile
(( b <= a ))
dolet"c=$*$"
echo -ne "$*$=$\t"
let b++
done
let a++
let b=1
echo
" "done
while迴圈的條件測試是測真值,until迴圈則是測假值。
語法格式
until 條件測試
do 執行命令
done
until迴圈 - 99 乘法表
#!/usr/bin/env bash
a=1b=1
until
(( a >9))
dountil
(( b > a ))
dolet"c=$*$"
echo -ne "$*$=$\t"
let b++
done
let a++
let b=1
echo
" "done
break,continue,exit 一般用於迴圈結構中控制迴圈的走向。命令說明
break n
n 表示跳出迴圈的次數,如果省略 n 表示跳出整個迴圈
continue n
n 表示退到第n層繼續迴圈,如果省略n表示跳過本次迴圈進入下一次迴圈
exit n
退出當前的shell程式,並返回 n,n 也可以省略
return
用於返回乙個退出值給呼叫的函式
shift
用於將引數列表list左移指定次數,最左端的那個引數就從列表中刪除,其後邊的引數繼續進入迴圈
break指令
break[n]:提前結束第n層迴圈,最內層為第1層
語法格式
while condition1;
do cmd1
...if condition2;
then
break
fi cmdn
...done
當數字等於3的時候,則跳出迴圈,輸出」game over」,迴圈結束後,輸出「complate」
#!/usr/bin/env bash
for(( i=
0; i<=
9; i++
))doif[
$i -eq 3 ]
;then
echo
"game over"
break
fiecho
$idone
echo
"complate"
continue 指令
語法格式
while condition1;
do cmd1
...if condition2;
then
continue
fi cmdn
...done
當數字等於3的時候,輸出「game over」
#!/usr/bin/env bash
for(( i=
0; i<=
9; i++
))doif[
$i -eq 3 ]
;then
echo
"game over"
continue
fiecho
$idone
exit 指令
退出當前的shell,和break的區別在於,break只是跳出了迴圈,後續的內容,任然會繼續執行,但是exit是直接退出程式,後續的內容,不再執行
當數字等於3的時候,輸出「game over」,並退出當前的shell
#!/usr/bin/env bash
for(( i=
0; i<=
9; i++
))doif[
$i -eq 3 ]
;then
echo
"game over"
exit 1
fiecho
$idone
shift 指令
輸出乙個三角形
#!/usr/bin/env bash
while
[[ $# > 0 ]]
doecho
$*shift
done
執行指令碼
sh study.sh 1 2 3 4 5 6
結果如下
1 2 3 4 5 6
2 3 4 5 6
3 4 5 6
4 5 6
5 66
乙個乙個輸出
#!/usr/bin/env bash
while
[[ $# > 0 ]]
doecho
$1shift
sleep 1
done
執行指令碼
sh study.sh 1 2 3 4 5 6
結果如下
543
21
我們一起來學Shell shell的函式
我們一起來學shell 初識shell 我們一起來學shell shell的變數 我們一起來學shell shell的條件判斷 我們一起來學shell shell的迴圈控制 我們一起來學shell shell的陣列 我們一起來學shell shell的函式 我們一起來學shell shell的併發及...
一起來學SQL(二)
insert into 語句用於向 中插入新的行。語法 insert into 表名稱 values 值1,值2,也可以指定所要插入資料的列 insert into table name 列1,列2,values 值1,值2,e.g.1 插入新的行 insert into persons value...
一起來學SQL(三)
create database 用於建立資料庫。sql create database 語法 create database database name create table 語句用於建立資料庫中的表。sql create table 語法 create table 表名稱 列名稱1 資料型別,...