最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux shell awk獲得外部變量(變量傳值)簡介

 更新時間:2013年11月19日 20:30:57   作者:  
這里提到awk,相信寫shell的朋友都會接觸到。AWK 是一種用于處理文本的編程語言工具
AWK 提供了極其強大的功能:
  1. 可以進行正則表達式的匹配
  2. 樣式裝入
  3. 流控制
  4. 數(shù)學運算符
  5. 進程控制語句
  6. 內置的變量和函數(shù)

可以把awk看作一門完全的程序設計語言,它處理文本的速度是快得驚人的?,F(xiàn)在很多基于shell 日志分析工具都可以用它完成。設計簡單,速度表現(xiàn)很好。 涉及到以上六個方面內容,我會在以后文章中加以介紹。 這次主要說下,怎么樣把外部變量傳入到awk執(zhí)行語句中。

一、基礎:

awk [ -F re] [parameter...] ['pattern {action}' ] [-f progfile][in_file...]

awk一般語法如上面所說。

如:

復制代碼 代碼如下:

[chengmo@localhost ~]$ echo 'awk code' | awk 'BEGIN{print "start\n============="}{print $0}END{print "=========\nend"}'
start
=============
awk code
=========
end

在 awk中兩個特別的表達式,BEGIN和END,這兩者都可用于pattern中(參考前面的awk語法),提供BEGIN和END的作用是給程序賦予初始狀態(tài)和在程序結束之后執(zhí)行一些掃尾的工作。任何在BEGIN之后列出的操作(在{}內)將在awk開始掃描輸入之前執(zhí)行,而END之后列出的操作將在掃描完全部的輸入之后執(zhí)行。因此,通常使用BEGIN來顯示變量和預置(初始化)變量,使用END來輸出最終結果。

二、獲得外部變量方法

1、獲得普通外部變量

復制代碼 代碼如下:

[chengmo@localhost ~]$ test='awk code'                           
[chengmo@localhost ~]$ echo | awk  '{print test}' test="$test"
awk code
[chengmo@localhost ~]$ echo | awk  test="$test" '{print test}'
awk: cmd. line:1: fatal: cannot open file `{print test}' for reading (No such file or directory)

格式如:awk ‘{action}'  變量名=變量值   ,這樣傳入變量,可以在action中獲得值。 注意:變量名與值放到'{action}'后面。

[chengmo@localhost ~]$ echo | awk  'BEGIN{print test}' test="$test"         

 

這種變量在:BEGIN的action不能獲得。

2.BEGIN程序塊中變量

復制代碼 代碼如下:

[chengmo@localhost ~]$ test='awk code'                                
[chengmo@localhost ~]$ echo | awk -v test="$test" 'BEGIN{print test}'
awk code
[chengmo@localhost ~]$ echo | awk -v test="$test" '{print test}'    
awk code

格式如:awk –v 變量名=變量值 [–v 變量2=值2 …] 'BEGIN{action}'  注意:用-v 傳入變量可以在3中類型的action 中都可以獲得到,但順序在  action前面。

3.獲得環(huán)境變量

復制代碼 代碼如下:

[chengmo@localhost ~]$ awk  'BEGIN{for (i in ENVIRON) {print i"="ENVIRON[i];}}'
AWKPATH=.:/usr/share/awk
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SELINUX_LEVEL_REQUESTED=
SELINUX_ROLE_REQUESTED=
LANG=en_US.UTF-8
....... 

只需要調用:awk內置變量 ENVIRON,就可以直接獲得環(huán)境變量。它是一個字典數(shù)組。環(huán)境變量名 就是它的鍵值。

相關文章

  • Linux輸出內容到指定文件的解決方案

    Linux輸出內容到指定文件的解決方案

    這篇文章主要介紹了Linux輸出內容到指定文件的解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Linux 中常用的sed命令

    Linux 中常用的sed命令

    sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用,功能不同凡響。接下來通過本文給大家介紹Linux 中常用的sed命令,感興趣的朋友一起看看吧
    2017-09-09
  • Linux 中(加、減、乘、除)實例詳解

    Linux 中(加、減、乘、除)實例詳解

    這篇文章主要介紹了 Linux 中(加、減、乘、除)實例詳解的相關資料,需要的朋友可以參考下
    2017-05-05
  • Shell中關于處理方法返回值問題詳解

    Shell中關于處理方法返回值問題詳解

    最近工作接觸到了一些Linux上面的文本處理,數(shù)據(jù)量還是蠻大的,不可避免的學期了shell,awk等腳本語言。下面這篇文章主要給大家介紹了關于Shell中關于處理方法返回值問題的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12
  • Shell內置命令教程之a(chǎn)lias和echo

    Shell內置命令教程之a(chǎn)lias和echo

    我們日常使用shell輸入命令得到結果的方式是交互式的方式,而shell腳本使用的是非交互式方式,shell提供了alias功能來簡化我們的日常操作,下面這篇文章主要給大家介紹了關于Shell內置命令教程之a(chǎn)lias和echo的相關資料,需要的朋友可以參考下
    2022-03-03
  • Linux shell中如何獲取當前目錄

    Linux shell中如何獲取當前目錄

    這篇文章主要介紹了Linux shell中如何獲取當前目錄問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解Linux使用shell+expect遠程登錄主機

    詳解Linux使用shell+expect遠程登錄主機

    這篇文章主要介紹了詳解Linux使用shell+expect遠程登錄主機的相關資料,這里提供了詳細的實現(xiàn)步驟,需要的朋友可以參考下
    2017-08-08
  • Linux命令之free命令使用詳解

    Linux命令之free命令使用詳解

    在Linux系統(tǒng)中,free命令用于顯示系統(tǒng)內存的使用情況,它提供了系統(tǒng)內存總量、已使用內存、空閑內存以及其他與內存相關的統(tǒng)計信息,本文將給大家詳細的介紹一下Linux free命令的使用方法,需要的朋友可以參考下
    2023-08-08
  • Python執(zhí)行Linux系統(tǒng)命令的4種方法

    Python執(zhí)行Linux系統(tǒng)命令的4種方法

    這篇文章主要介紹了Python執(zhí)行Linux系統(tǒng)命令的4種方法,即在Python腳本中調用Shell命令,需要的朋友可以參考下
    2014-10-10
  • Linux Shell制作錄制回放功能腳本

    Linux Shell制作錄制回放功能腳本

    這篇文章主要為大家詳細介紹了Linux Shell制作錄制回放功能腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評論

日照市| 手游| 城口县| 将乐县| 余庆县| 延安市| 鄯善县| 柳林县| 基隆市| 社会| 安西县| 湾仔区| 灵石县| 潞西市| 淳化县| 成安县| 汉源县| 县级市| 长沙县| 平泉县| 望谟县| 新田县| 衡东县| 安吉县| 本溪| 黄石市| 满洲里市| 唐海县| 华阴市| 睢宁县| 丘北县| 明溪县| 东莞市| 怀来县| 青田县| 马关县| 四子王旗| 大新县| 手游| 瑞安市| 崇阳县|