欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

一、基礎(chǔ):

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

awk一般語法如上面所說。

如:

復(fù)制代碼 代碼如下:

[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)和在程序結(jié)束之后執(zhí)行一些掃尾的工作。任何在BEGIN之后列出的操作(在{}內(nèi))將在awk開始掃描輸入之前執(zhí)行,而END之后列出的操作將在掃描完全部的輸入之后執(zhí)行。因此,通常使用BEGIN來顯示變量和預(yù)置(初始化)變量,使用END來輸出最終結(jié)果。

二、獲得外部變量方法

1、獲得普通外部變量

復(fù)制代碼 代碼如下:

[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程序塊中變量

復(fù)制代碼 代碼如下:

[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)境變量

復(fù)制代碼 代碼如下:

[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
....... 

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

相關(guān)文章

  • 一個簡單的linux命令 mv

    一個簡單的linux命令 mv

    這篇文章主要介紹了一個簡單的linux命令mv,mv命令用于移動文件或者將文件改名,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Window11?WSL2?添加靜態(tài)IP的腳本

    Window11?WSL2?添加靜態(tài)IP的腳本

    這篇文章主要介紹了Window11?WSL2?添加靜態(tài)IP的腳本方法,通過一段腳本給?Windows?端的"vEthernet?(WSL)"加了IPv4?172.18.16.1,給?Linux?端的?eth0?添加?IPv4?172.18.16.1,在使用前,請按需調(diào)整網(wǎng)絡(luò)接口的名稱和IP地址,需要的朋友可以參考下
    2023-01-01
  • telnet 命令使用方法大全

    telnet 命令使用方法大全

    這篇文章主要介紹了telnet 命令使用方法大全,本文給大家介紹的非常想詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Linux下is not in the sudoers file的解決方案

    Linux下is not in the sudoers file的解決

    當(dāng)我們使用sudo命令切換用戶的時候可能會遇到提示以下錯誤:用戶名 is not in the sudoers file.本文給大家分享原因分析及解決方案,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • Shell日志分析常用命令和例子

    Shell日志分析常用命令和例子

    這篇文章主要介紹了Shell日志分析常用命令和例子,本文重點在一樣實現(xiàn)日志分析命令語句例子上,本文給出了10條常用的分析實例,需要的朋友可以參考下
    2014-12-12
  • Linux 中makefile的命令包定義及使用

    Linux 中makefile的命令包定義及使用

    這篇文章主要介紹了Linux 中makefile的命令包定義及使用的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • linux刪除無效鏈接文件腳本分享

    linux刪除無效鏈接文件腳本分享

    一個 shell 腳本文件,用于刪除指定目錄下無效鏈接文件,可利用標準輸入指派多個處理目標
    2014-03-03
  • shell 通過makefile傳參給c語言的實現(xiàn)示例

    shell 通過makefile傳參給c語言的實現(xiàn)示例

    本文主要介紹了shell 通過makefile傳參給c語言的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • linux定時任務(wù)出現(xiàn)command not found解決辦法

    linux定時任務(wù)出現(xiàn)command not found解決辦法

    這篇文章主要介紹了 linux定時任務(wù)出現(xiàn)command not found解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Linux壓縮和解壓命令大全之tar、gzip和zip詳細教程

    Linux壓縮和解壓命令大全之tar、gzip和zip詳細教程

    本文介紹了常用的壓縮和解壓命令,包括tar、gzip和zip,通過使用這些命令,我們可以方便地對文件和目錄進行壓縮和解壓操作,從而節(jié)省存儲空間和提高傳輸效率,需要的朋友可以參考下
    2023-09-09

最新評論