多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > Shell學習筆記

Shell學習筆記

來源:程序員人生   發布時間:2015-05-21 08:08:15 閱讀次數:3153次
#!/bin/bash
# Author:undoner
# Copyright (c) undoner
# Test Code


# -----------------------------------------------------------------
#標準輸入輸出
echo "What is your name?"
read PERSON
echo "Hello,${PERSON}"
printf "%d %s " 1 "abc"




# -----------------------------------------------------------------
#聲明變量:readonly(只讀),unset(刪除)
var="undoner"
echo "${var}" #輸出 undoner
echo ${#var} #統計字符數量,輸出 7
echo ${var:1:4} #字符串截取,輸出ndon
echo `expr index "$var" d` #查找字符,輸出索引 3


# -----------------------------------------------------------------
#聲明函數:
Hello () {
   echo "聲明函數"
}
Hello
#輸出:聲明函數


# -----------------------------------------------------------------
#條件控制:
echo 'if else語句'
if_a=10
if_b=20
if [ $if_a == $if_b ]
then
   echo "if_a is equal to if_b"
else
   echo "if_a is not equal to if_b"
fi


# -----------------------------------------------------------------
#循環控制:
#break命令允許跳出所有循環(終止履行后面的所有循環)。
#continue命令與break命令類似,但只跳出當前循環。


echo 'for循環'
for for_str in 'This is a string'
do
    echo $for_str
done
#輸出:This is a string
for FILE in $HOME/.bash*
do
   echo $FILE
done
#輸出:顯示主目錄下以 .bash 開頭的文件


echo 'while循環'
while_sum=0
while [ $while_sum -lt 5 ]
do
    while_sum=`expr $while_sum+1`
    echo $while_sum
done
#實現計數(有換行),0 1 2 3 4 5




echo 'until循環'
until_sum=0
until [ ! $until_sum -lt 5 ]
do
   echo $until_sum
   until_sum=`expr $until_sum + 1`
done
#實現計數(有換行),0 1 2 3 4 5


# -----------------------------------------------------------------
echo 'case esac語句'
echo 'Input a number between 1 to 2'
echo 'Your number is:c'
read aNum
case $aNum in
    1)  echo 'You select 1'
    ;;
    2)  echo 'You select 2'
    ;;
    *)  echo 'You do not select a number between 1 to 4'
    ;;
esac


# -----------------------------------------------------------------
#聲明數組
array_name=(value0 value1 value2 value3)
echo ${array_name[@]} # 獲得數組所有的元素
echo ${array_name[*]} # 獲得數組所有的元素
echo ${array_name[2]} # 獲得數組單個元素
echo ${#array_name[@]} # 獲得數組元素的個數
echo ${#array_name[*]} # 獲得數組元素的個數
echo ${#array_name[2]} # 獲得數組單個元素的長度


# -----------------------------------------------------------------
#變量替換:變量替換可以根據變量的狀態(是不是為空、是不是定義等)來改變它的值
#  情勢          說明
# ${var}  變量本來的值
# ${var:-word}  如果變量 var 為空或已被刪除(unset),那末返回 word,但不改變 var 的值。
# ${var:=word}  如果變量 var 為空或已被刪除(unset),那末返回 word,并將 var 的值設置為 word。
# ${var:?message} 如果變量 var 為空或已被刪除(unset),那末將消息 message 送到標準毛病輸出,可以用來檢測變量 var 是不是可以被正常賦值。若此替換出現在Shell腳本中,那末腳本將停止運行。
# ${var:+word}  如果變量 var 被定義,那末返回 word,但不改變 var 的值。


# -----------------------------------------------------------------
#算術運算符列表
#運算符 說明        舉例
#  + 加法 `expr $a + $b` 結果為 30。
#  - 減法 `expr $a - $b` 結果為 10。
#  * 乘法 `expr $a * $b` 結果為  200。
#  / 除法 `expr $b / $a` 結果為 2。
#  % 取余 `expr $b % $a` 結果為 0。
#  = 賦值 a=$b 將把變量 b 的值賦給 a。
#  == 相等    用于比較兩個數字,相同則返回 true。 [ $a == $b ] 返回 false。
#  != 不相等  用于比較兩個數字,不相同則返回 true。 [ $a != $b ] 返回 true。


# -----------------------------------------------------------------
#關系運算符列表
# 運算符    說明                         舉例
#  -eq 檢測兩個數是不是相等,相等返回 true。 [ $a -eq $b ] 返回 true。
#  -ne 檢測兩個數是不是相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
#  -gt 檢測左側的數是不是大于右側的,如果是,則返回 true。 [ $a -gt $b ] 返回 false。
#  -lt 檢測左側的數是不是小于右側的,如果是,則返回 true。 [ $a -lt $b ] 返回 true。
#  -ge 檢測左側的數是不是大等于右側的,如果是,則返回 true。 [ $a -ge $b ] 返回 false。
#  -le 檢測左側的數是不是小于等于右側的,如果是,則返回 true。 [ $a -le $b ] 返回 true。


# -----------------------------------------------------------------
#布爾運算符列表
# 運算符    說明                                   舉例
#  ! 非運算,表達式為 true 則返回 false,否則返回 true。 [ ! false ] 返回 true。
#  -o 或運算,有1個表達式為 true 則返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
#  -a 與運算,兩個表達式都為 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。


# -----------------------------------------------------------------
#字符串運算符列表
# 運算符     說明                       舉例
#  = 檢測兩個字符串是不是相等,相等返回 true。 [ $a = $b ] 返回 false。
#  != 檢測兩個字符串是不是相等,不相等返回 true。 [ $a != $b ] 返回 true。
#  -z 檢測字符串長度是不是為0,為0返回 true。 [ -z $a ] 返回 false。
#  -n 檢測字符串長度是不是為0,不為0返回 true。 [ -z $a ] 返回 true。
#  str 檢測字符串是不是為空,不為空返回 true。 [ $a ] 返回 true。


# -----------------------------------------------------------------
#文件測試運算符列表
# 操作符           說明                                     舉例
#  -b file 檢測文件是不是是塊裝備文件,如果是,則返回 true。 [ -b $file ] 返回 false。
#  -c file 檢測文件是不是是字符裝備文件,如果是,則返回 true。 [ -b $file ] 返回 false。
#  -d file 檢測文件是不是是目錄,如果是,則返回 true。 [ -d $file ] 返回 false。
#  -f file 檢測文件是不是是普通文件(不是目錄和裝備文件),如果是,則返回 true。 [ -f $file ] 返回 true。
#  -g file 檢測文件是不是設置了 SGID 位,如果是,則返回 true。 [ -g $file ] 返回 false。
#  -k file 檢測文件是不是設置了粘著位(Sticky Bit),如果是,則返回 true。 [ -k $file ] 返回 false。
#  -p file 檢測文件是不是是具名管道,如果是,則返回 true。 [ -p $file ] 返回 false。
#  -u file 檢測文件是不是設置了 SUID 位,如果是,則返回 true。 [ -u $file ] 返回 false。
#  -r file 檢測文件是不是可讀,如果是,則返回 true。 [ -r $file ] 返回 true。
#  -w file 檢測文件是不是可寫,如果是,則返回 true。 [ -w $file ] 返回 true。
#  -x file 檢測文件是不是可履行,如果是,則返回 true。 [ -x $file ] 返回 true。
#  -s file 檢測文件是不是為空(文件大小是不是大于0),不為空返回 true。 [ -s $file ] 返回 true。
#  -e file 檢測文件(包括目錄)是不是存在,如果是,則返回 true。 [ -e $file ] 返回 true。


# -----------------------------------------------------------------
#輸入輸出重定向,全部可用的重定向命令列表
#     命令         說明
# command > file 將輸出重定向到 file。
# command < file 將輸入重定向到 file。
# command >> file 將輸出以追加的方式重定向到 file。
# n > file 將文件描寫符為 n 的文件重定向到 file。
# n >> file 將文件描寫符為 n 的文件以追加的方式重定向到 file。
# n >& m 將輸出文件 m 和 n 合并。
# n <& m 將輸入文件 m 和 n 合并。
# << tag 將開始標記 tag 和結束標記 tag 之間的內容作為輸入。
# 其他:
# /dev/null 不顯示輸出結果
# /dev/null 2>&1 屏蔽 stdout 和 stderr的輸出


# -----------------------------------------------------------------
# wc命令
#   命令        說明
# wc -c file 統計字節數。
# wc -l file 統計行數。
# wc -m file 統計字符數。這個標志不能與 -c 標志1起使用。
# wc -w file 統計字數。1個字被定義為由空白、跳格或換行字符分隔的字符串。
# wc -L file 打印最長行的長度。
# wc -help file 顯示幫助信息
# wc --version file 顯示版本信息


# -----------------------------------------------------------------
#特殊變量列表
#變量 含義
# $0 當前腳本的文件名
# $n 傳遞給腳本或函數的參數。n 是1個數字,表示第幾個參數。例如,第1個參數是$1,第2個參數是$2。
# $# 傳遞給腳本或函數的參數個數。
# $* 傳遞給腳本或函數的所有參數。
# $@ 傳遞給腳本或函數的所有參數。被雙引號(" ")包括時,與 $* 稍有不同,下面將會講到。
# $? 上個命令的退出狀態,或函數的返回值。
# $$ 當前Shell進程ID。對 Shell 腳本,就是這些腳本所在的進程ID。


#轉義字符  含義
#    反斜杠
#  a  警報,響鈴
#    退格(刪除鍵)
#  f  換頁(FF),將當前位置移到下頁開頭
#    換行
#    回車
#    水平制表符(tab鍵) 
#  v  垂直制表符
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩中文字幕高清在线专区 | 九九在线精品视频xxx | 欧美18videosex性欧美老师 | yellow免费网站 | 69国产成人综合久久精 | 国产亚洲欧美日韩在线一区 | 最近高清中文字幕免费 | 欧美综合成人 | 亚洲精品一区二区三区中文字幕 | 国产精品久久视频 | 国产精品jizz在线观看软件 | 国产视频第一页 | 色视频一区二区三区 | 国产亚洲精品中文带字幕21页 | 亚洲无线乱码高清在线观看一区 | 久久国产精品影院 | 日韩欧美色| 美国福利视频 | 欧美一区二区三区四区在线观看 | 1314成人网| 成人午夜视频在线播放 | 国外一级毛片 | 激情五月婷婷综合 | 日韩精品视频在线播放 | 最近的最新的中文字幕视频 | 黄色羞羞视频 | 欧美性xxxx交| 国产综合网站 | 国产成人免费不卡在线观看 | xxfree性人妖hd| 亚洲乱搞 | 国产欧美日韩精品一区二区三区 | 国产91精品久久久久久久 | 久久久影院亚洲精品 | 日本一区欧美 | 欧美一级毛片免费高清aa | 久久不卡精品 | 日韩精品福利在线 | 国产欧美日韩综合一区二区三区 | 看黄色免费网站 | 国产xx在线观看 |