• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            怎樣向awk中傳入shell變量值

            Posted on 2010-04-12 19:10 Prayer 閱讀(1220) 評論(0)  編輯 收藏 引用 所屬分類: Shell

            假設當前目錄下有a.log b.log二個文件,利用awk打印出其文件名,腳本如下:

            #! /bin/bash
            for file in *.log
            do
                    awk 'BEGIN{var=" ' "$file" ' "}END{print var;}' "$file"
            done

            在這里最讓人混淆的是單引號和雙引號


            我們可以利用bash -x test.sh來執行腳本,其會將腳本中的shell變量展開,便于調試

            ’單引號中除(’)都為原本字符,沒有特殊意義

            "雙引號中除( $`") 都為原本字符,沒有特殊意義

            因此,上述可以展開為:

            第一次:

            awk 'BEGIN{var="a.log"}END{print var;}‘ a.log

            第二次:

            awk 'BEGIN{var="b.log"}END{print var;}‘ b.log

            如果將其寫成 awk 'BEGIN{var=' "$file" '}END{print var;}' "$file",則展開為:

            第一次:

            awk 'BEGIN{var=a.log}END{print var;}‘ a.log

            第二次:

            awk 'BEGIN{var=b.log}END{print var;}‘ b.log

            會報錯,因為awk中字符串要用雙引號括起來


            將其分解成以下這樣,便于理解:

            'BEGIN{var=" '    "$file"     ' "}END{print var;}'  這三部分為字符串連接關系

            久久国产免费观看精品| 亚洲精品无码专区久久久| 国产精品久久毛片完整版| 久久精品国产亚洲5555| 麻豆久久久9性大片| 久久久久亚洲av无码专区| 久久久精品免费国产四虎| 久久婷婷国产剧情内射白浆 | www.久久精品| 九九热久久免费视频| 久久国产精品一国产精品金尊| 97久久精品人妻人人搡人人玩| 精品久久久久久国产三级| 久久人做人爽一区二区三区 | 久久中文字幕人妻丝袜| 久久国产午夜精品一区二区三区| 久久久精品久久久久影院| 2021精品国产综合久久| 欧美日韩精品久久久久| 91精品国产91久久久久久蜜臀 | 无码乱码观看精品久久| 国产精品热久久毛片| 97久久精品人人澡人人爽| 日韩人妻无码一区二区三区久久99 | 久久久精品国产Sm最大网站| 91精品国产综合久久婷婷| 欧美日韩精品久久久久| 久久综合精品国产一区二区三区| 国产—久久香蕉国产线看观看 | 99久久久国产精品免费无卡顿| 中文字幕无码免费久久| 欧美午夜精品久久久久免费视| 久久精品国产2020| 色综合久久天天综线观看| 久久九九久精品国产| 国产叼嘿久久精品久久| 色综合色天天久久婷婷基地| 久久se精品一区二区| 青青青伊人色综合久久| 久久综合狠狠色综合伊人| 久久福利青草精品资源站|