<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • 嵌入式網(wǎng)站建設(shè)

            2023-09-04    分類: 網(wǎng)站建設(shè)

            II. Shell
            A.字符操作

            1. 得到長度
            x="abcd"
            方法一:expr length $x  方法二: expr "$x" : ".*"

            2. 查找子串的位置
            x="abcd"
            expr index $x "b"

            3. 得到子串
            x="abcdefgh"
            expr substr "$x" 2 6    結(jié)果是:bcdef

            4. 截取
            方法一:
            echo $a|cut -d',' -f3
            cut:對標(biāo)準(zhǔn)輸入的字符串進行處理
            cut -bn-m:以byte為單位,從第n個byte開始,取m個
            cut -bn,m:以byte為單位,截取第n,m個byte
            cut -b-n,m:以byte為單位,截取1-n,和第m個
            -c:以charactor為單位
            -d:指定分隔符,默認(rèn)為tab
            -s:使標(biāo)準(zhǔn)輸入中沒有delimeter
            cut -f1:截取第1個域
            方法二:
            expr substr “$a” 1 8    #  截取$a中的1到8個字符。
            方法三:
            ${varible##*string} 從左向右截取最后一個string之后的字符串。
            ${varible%%string*} 從右向左截取最后一個string之后的字符串。
            ${varible#*string} 從左向右截取第一個string之后的字符串
            ${varible%string*} 從右向左截取第一個string之后的字符串

            5.
            grep -c 只輸出匹配的行數(shù)。
            grep -i 忽略大小寫
            grep -h 查詢多文件時不顯示文件名。
            grep -H 顯示文件名。
            grep -l 查詢多文件時只輸出包含匹配字符的文件名。
            grep -n 顯示匹配行及行號。
            grep -s 不顯示不存在或不匹配文本的錯誤信息。
            grep -v 顯示不包含匹配文本的所有行。

            [[:upper:]]    相當(dāng)于[A-Z]
            [[:lower:]]    相當(dāng)于[a-z]
            [[:alnum:]]    相當(dāng)于[0-9a-zA-Z]
            [[:digit:]]    相當(dāng)于[0-9]
            [[:alpha:]]    相當(dāng)于[a-zA-Z]
            [[:space:]]    相當(dāng)于空格或tab健

            6. awk和eval組合把一段有規(guī)律的字符串劃分為若干個變量。
            eval `echo "$FORM_chkbox" | awk -F@ '{printf "y1=%s/ny2=%s/n",$1,$2}'`
            eval `echo "$FORM_chkbox" | awk -F@ '{printf "y1=%s y2=%s/n",$1,$2}'`
            實例:
            value="Long:/usb1-disk2/SAMBA/"
            eval $(echo $value | awk -F: '{printf "name=%s/npath=%s/n",$1,$2}')
            6.1. awk實例
            ifconfig eth0 | awk '$2~/[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/'

            7. eval 函數(shù)可以把兩字符串重組然后再變成一個變量。
            a=123
            b=-----------2345
            eval temp=$a$b
            zhong123=adsfjsdgjsdjfgjksldjf
            eval temp1="zhong"$a
            eval temp2="$zhong"$a
            eval temp3="$""zhong"$a
            echo $temp                            //結(jié)果是:123-----------2345
            echo "$temp1"                        //結(jié)果是:zhong123
            echo "$temp2"                        //結(jié)果是:123          因為$zhong不存在。所以結(jié)果只有$a的值。
            echo "$temp3"                        //結(jié)果是:adsfjsdgjsdjfgjksldjf            這正是我想要的結(jié)果。

            8.sed技巧
            sed 's@^/lib/ld-linux.so.2@/tools&@g'         ### "@" is a separate symbol.
            sed 's:/usr/local/bin:/bin:' configure.bak > configure    ### ":" is a separate.
            sed -e "$"d            ### remove the last line.
            $ sed -n 's/^test/mytest/p' example-----(-n)選項和p標(biāo)志一起使用表示只打印那些發(fā)生替換的行。也就是說,如果某一行開頭的test被替換成mytest,就打印它。
            $ sed 's/^192.168.0.1/&localhost/' example-----&符號表示替換換字符串中被找到的部份。所有以192.168.0.1開頭的行都會被替換成它自已加 localhost,變成192.168.0.1localhost。

            9.sed 實例
            9.1. 替換文件中的內(nèi)容。
            path=//usb1-disk1//Download//Bt
            a=$(sed -n "/Btstorepath=/=" usbnas.conf)
            sed -i -e "$a i/Btstorepath=$path" -e "$a"d usbnas.conf
            或:
            path=/usb1-disk1/
            sed -i -e "/Btstorepath/i/Btstorepath=$path" -e "/Btstorepath/"d usbnas.conf

            9.2. 替換文件中的內(nèi)容。
            sed -i "s/runbtdownload.*/runbtdownload=yes/" usbnas.conf
            sed -i "s|Btstorepath=.*/(.*/)|Btstorepath=/1$path|" usbnas.conf
            sed -i "s|$variable=.*/(.*/)|$variable=/1$value|" usbnas.conf

            B.shell 中固定次數(shù)的for循環(huán)。
            1. n=10
            for i in `seq $n`
            do
            echo "$i"
            done

            2.read和while結(jié)合用法
            #!/bin/sh
            logfile="/sdb/path.list"

            while read t1 t2 t3        ### read one line once, and each line has three elements, so here use three                     ###variables to contain the three elements.
            do
            echo [$t1] >> /etc/smb.conf
            echo "        comment="$discription"" >>  /etc/smb.conf
            echo "        path = "$t3"        " >>  /etc/smb.conf
            echo "        valid users = "$t2"" >>  /etc/smb.conf
            echo "
            done  < $logfile        ### use standard input( < ) to input.

            C. 創(chuàng)建swap文件
            cd /rdisk0/disk1/usb1-disk1
            dd if=/dev/zero of=./swapfile bs=1M count=64
            mkswap swapfile
            swapon swapfile    #turn on swap
            swapoff swapfile    #turn off swap

            D.cp和mv技巧。
            cp configure{,.bak}        ### cp configure configure.bak
            mv configure{,.bak}        ### mv configure configure.bak

            網(wǎng)站標(biāo)題:嵌入式網(wǎng)站建設(shè)
            文章URL:http://www.jbt999.com/news6/280756.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、定制網(wǎng)站、商城網(wǎng)站電子商務(wù)、虛擬主機、網(wǎng)站維護

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

            網(wǎng)站托管運營

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 4438全国最大成人网 | 青青草视频免费在线播放 | 啪啪啪啪啪啪啪啪啪啪网 | 91无码精品秘 入口 | 污污又黄又爽的网站免费 |