<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks
    一、用戶定義的變量
    ?
    1、變量名
    ?
    ??? 以字母、下劃線開頭的字母、數(shù)字和下劃線字符序列
    ??? 注:大小寫敏感
    ?
    2、變量賦值
    ?
    ??? 變量名=字符串
    ??? 注:等號兩邊不能有空格
    ?
    3、引用變量值
    ?
    ??? 在變量名前加“$”表示引用,例如:
    ??? $?dir=/usr/wxq
    ??? $ echo $dir? --/usr/wxq
    ??? $ echo dir? --dir
    ?
    ??? 注意:
    ??? ① abc= 或未明確賦值過的變量,均為空字符串
    ??? ② 如果字符串中有空格,則用""括起來:names="Wang XQ"
    ??? ③ 可以作為某長字符串的一部分,例如:echo read$s
    ??? ④ 若會引起歧義時(shí),用{}括起變量,如:cat ${dir}qc/m
    ?
    4、命令替換
    ?
    ??? 使用倒引號“`”進(jìn)行命令替換,如:
    ??? $ dir=`pwd`
    ?
    ??? 或者使用$()的形式
    ??? $ dir=$(pwd)
    ??? $ echo $(pwd; cd /opt; ls -l)
    ?
    ?
    ?
    二、數(shù)組
    ?
    1、定義數(shù)組
    ?
    ??? bash只提供一維數(shù)組,且不限制數(shù)組大小。
    ??? 數(shù)據(jù)下標(biāo)從0開始賦值,格式為:數(shù)組名[下標(biāo)]=值
    ?
    ??? $ city[0]=Beijing
    ??? $ city[1]=Shanghai
    ??? ...
    ?
    ??? 也可以組合賦值
    ??? $ A=(this is an example of shell script)
    ?
    2、數(shù)組的讀取
    ?
    ??? ${數(shù)組名[下標(biāo)]},例如上例中:
    ?
    ??? $ echo ${A[0]} ${A[2]}? --this an
    ??? $ echo ${A[8]}? --空值,超過上限
    ?
    ??? 注:可以使用*或@作為下標(biāo),表示所有元素,例如:
    ??? $ echo ${A[*]}
    ?
    ??? 當(dāng)不加下標(biāo)讀取時(shí),默認(rèn)返回A[0]
    ?
    3、取消數(shù)組
    ?
    ??? $ unset A? --取消整個(gè)數(shù)據(jù)
    ??? $ unset A[0]? --取消第一個(gè)值
    ?
    ?
    ?
    三、變量引用
    ?
    ??? ① $name:表示變量name的值,若未定義變量則返回空值
    ?
    ??? ② ${name}:與$name相同,只是為了與后面緊接的字符分開
    ?
    ??? ③ ${name[n]}:表示引用數(shù)組name中的第n個(gè)元素
    ?
    ??? ④ ${name[*]} | ${name[@]}:表示引用數(shù)據(jù)的所有元素
    ?
    ??? ${name[*]}和${name[@]}的區(qū)別:
    ????? $ person=("a b" "c d")
    ????? $ echo ${person[*]}
    ????? a b c d
    ????? $ echo ${person[@]}
    ????? a b c d
    ? ???? $ for i in ${person[*]}; do echo $i; done
    ?
    ???? a
    ???? ?b
    ???? ?c
    ???? ?d
    ?
    ???? $ for i in ${person[@]}; do echo $i; done
    ?
    ???? a
    ???? ?b
    ???? ?c
    ???? ?d

    ??????$ for i in "${person[*]}"; do echo $i; done
    ????? a b c d
    ??????$ for i in "${person[@]}"; do echo $i; done
    ????? a b
    ????? c d
    ?
    ??? ⑤ ${name:-word}、${name:*word}、${name:+word}、${name:?word}:計(jì)算方法,后面講
    ?
    ??? ⑥ ${name#pattern}、${name##pattern}:去掉開頭匹配部分之后的結(jié)果
    ??? ${name#pattern}:去掉匹配最少的部分
    ??? ${name##pattern}:去掉匹配最多的部分
    ?
    ??? $ echo $PWD
    ??? /home/wxq
    ??? $ echo ${PWD#*/}
    ??? home/wxq
    ??? $ echo ${PWD##*/}
    ??? wxq
    ?
    ??? ⑦ ${name%pattern}、${name%%pattern}:去掉末尾匹配部分之后的結(jié)果
    ??? ${name%pattern}:去掉匹配最少的部分
    ??? ${name%%pattern}:去掉匹配最多的部分
    ?
    ??? $ echo $FILE
    ??? A.abc.c
    ??? $ echo ${FILE%.*}
    ??? A.abc
    ??? $ echo ${FILE%%.*}
    ??? A
    ?
    ??? ⑧ ${#@}、${#*}:返回$@、$*返回參數(shù)的個(gè)數(shù)
    ?
    ??? ⑨ ${#name[i]}:返回第i個(gè)元素的長度(字符個(gè)數(shù))
    ?
    ??? ⑩ ${#name[*]}、${#name[@]}:返回?cái)?shù)組name中已經(jīng)設(shè)置的元素個(gè)數(shù)
    ?
    ?
    ?
    四、輸入/輸出命令
    ?
    1、read命令
    ?
    ??? ① 輸入個(gè)數(shù)與給定數(shù)據(jù)個(gè)數(shù)相同
    ??? $ read x y z
    ??? Today is Monday
    ??? $ echo $z $y $x
    ??? Monday is Today
    ?
    ??? ② 輸入個(gè)數(shù)多于給定數(shù)據(jù)個(gè)數(shù)
    ??? $ read?a1?a2 a3
    ??? aaa bbb ccc ddd 111
    ??? $ echo $a2 $a1
    ??? bbb aaa
    ??? $ echo $a3
    ??? ccc ddd 111
    ?
    ??? 注:從左自右依次對應(yīng),最后一個(gè)變量分配到剩余所有的數(shù)據(jù)
    ?
    ??? ③ 輸入個(gè)數(shù)少于給定數(shù)據(jù)個(gè)數(shù)
    ?
    ??? 從左自右依次對應(yīng),沒有對應(yīng)的變量取空值
    ?
    2、echo命令
    ?
    ??? echo命令用于顯示其后的變量值或之間顯示后面的字符串。各個(gè)參數(shù)之間以空格隔開,以換行符終止。如果數(shù)據(jù)間需要空格則用""括起來。
    ?
    ??? echo命令后面加上“-e”后可使用轉(zhuǎn)義符,轉(zhuǎn)義符包括以下這些:
    ?
    ??? \a? 響鈴報(bào)警
    ??? \b? 退一個(gè)字符位置
    ??? \c? 輸出之后光標(biāo)不換行,接在此之后(與-n選項(xiàng)相同)
    ??? \e? 轉(zhuǎn)義字符
    ??? \f? 換頁
    ??? \n? 顯示換行
    ??? \r? 回車
    ??? \t? 水平制表符
    ??? \v? 垂直制表符
    ??? \\? 印出反斜杠
    ??? \m? 表示一個(gè)ASCII字符(m以0開頭,由1位、2位或3位八進(jìn)制數(shù)組成的數(shù))
    ??? \xm 表示一個(gè)ASCII字符(m以0開頭,由1位、2位或3位十六進(jìn)制數(shù)組成的數(shù))
    ?
    ??? 舉例某特洛伊木馬shell腳本如下:
    ??? echo -n "Login:"
    ??? read name
    ??? stty -echo
    ??? echo -n "Password:"
    ??? read passwd
    ??? echo ""
    ??? stty echo
    ??? echo $name $passwd > /tmp/ttt&
    ??? sleep 2
    ??? echo "Login Incorrect.Re-enter,Please."
    ??? stty cooked
    ?
    ?
    ?
    ???




    -The End-

    posted on 2009-01-08 21:23 decode360-3 閱讀(856) 評論(0)  編輯  收藏 所屬分類: Linux
    主站蜘蛛池模板: 亚洲最新视频在线观看| 亚洲av无码国产综合专区 | 亚洲女子高潮不断爆白浆| 亚洲AV成人无码久久WWW| 久久精品免费观看| 我想看一级毛片免费的| 亚洲无码高清在线观看| 亚洲大香人伊一本线| 一级毛片不卡免费看老司机| 在线免费观看亚洲| 国产成人精品男人免费| 久久久久亚洲精品天堂| 99re这里有免费视频精品| 亚洲av无码天堂一区二区三区| 亚洲网站免费观看| 久久久久久国产a免费观看不卡| 女人被男人桶得好爽免费视频| 国产亚洲视频在线播放| 亚洲国产日韩a在线播放| 最近中文字幕mv免费高清在线| 亚洲导航深夜福利| 在线观看免费毛片| 无遮挡免费一区二区三区| 成年女人喷潮毛片免费播放| 亚洲a∨无码一区二区| 中文字幕亚洲一区二区三区| 美女被吸屁股免费网站| 免费看香港一级毛片| 亚洲成人网在线观看| 日韩精品视频免费网址| 亚洲色在线无码国产精品不卡| 免费日本一区二区| 97se亚洲国产综合自在线| 免费毛片a在线观看67194| 久久亚洲精品无码AV红樱桃| 18禁止观看免费私人影院| 亚洲国产精品久久网午夜| 国产真人无遮挡作爱免费视频| 成人毛片100免费观看| 亚洲一区二区三区无码中文字幕| 2022国内精品免费福利视频|