awk當中使用外部變數

2021-09-27 01:25:14 字數 1856 閱讀 8504

awk當中使用外部變數

1.awk命令使用雙引號的情況下

此時在awk命令裡面使用"$var"就可以引用外部環境變數的var的值

var=「bash」;echo"unixscript"|awk"gsub(/unix/,「var」)"

2.awk命令使用單引號的情況下

此時在awk命令裡面使用"』"$var"』"就可以應用外部變數var的值,注意五個點表示兩個雙引號之間有乙個單引號

var=「bash」;echo"unixscript"|awk′gsub(/unix/,"′「var」』")』

bash script

3.awk的引數-v (推薦)

這個沒什麼好解釋的,應該是用得比較多的一種方法了,就是使用-v引數,加帶乙個變數極其賦值

$ echo 「unix script」| awk -v var=「bash」 『gsub(/unix/, var)』

bash script

4.如下, $為awk外部變數:

#!/bin/bash

os_types=(windows linux macos)

for os in typ

es[@

]doc

onff

ile=

"do conf_file="

types[

@]do

conf

f​il

e=".conf"

cat katex parse error: expected 'eof', got '\t' at position 23: …ile} | awk -f "\̲t̲" '』 「$1」 "$3}』

done

5.export變數,然後在awk中使用environ[「var」]形式獲取環境變數的值

例如:var=「this a test」; export var;

awk 『begin』

「由awk向shell傳遞變數」,其思想無非是用awk(sed/perl等也是一樣)輸出若干條shell命令,然後再用shell去執行這些命令。

例如:eval (awk′beginprint"var1=′str1′;var2=′str2′"′)或者eval(awk′beginprint"var1=′str1′;var2=′str2′"′)或者eval(awk 『』 abc.txt)

之後可以在當前shell中使用var1,var2等變數了。

echo 「var1=var1−−−−−var2=var1−−−−−var2=var2」

三、乙個檢測磁碟空間使用情況的指令碼的例子

#!/bin/sh

#檔案系統名字

file_system_name=「rootfs」

#檔案系統掛在的目錄

mounted_on="/"

eval (df−p|awk′(df−p|awk′1=="』「file_system_name」』" &&file_system_name"』" &&6=="『mounted_on』" 』)

echo 「主磁碟的使用空間為mounted_on』」 』) echo 「主磁碟的使用空間為spacesize」

spacesize=`echo spacesize|cut−dif[aaspacesize|cut−dif[aaspacesize = 「aa」 ]; then

spacesize=-1

fiif [ spacesize−le85];then echo′主磁碟的使用空間充足′elif[spacesize−le85];then echo′主磁碟的使用空間充足′elif[spacesize -eq -1 ]; then

echo 『沒有找到主磁碟使用空間,請檢查指令碼』

else

echo 『主磁碟的使用空間超過閾值』

fi

awk當中使用外部變數

1.awk命令使用雙引號的情況下 此時在awk命令裡面使用 var 就可以引用外部環境變數的var的值 var bash echo unix script awk gsub unix var 2.awk命令使用單引號的情況下 此時在awk命令裡面使用 var 就可以應用外部變數var的值,注意五個點...

awk中使用shell變數

其實在awk裡,是不能直接使用shell變數的 方法是 awk v 選項讓awk 裡使用shell變數 time 60 awk v time time begin 這樣要注意 在awk裡,time不能加 符號。網上說如下方法都可行 一 var 這種寫法大家無需改變用 括起awk程式的習慣,是老外常用...

awk中使用shell變數

1 通過命令列引數定義變數時引用 awk v awk變數名 shell變數名 bin bash var4bash test awk v var4awk var4bash begin 2 在awk中直接引用,使用 var 注意使用前格式必須是先用單引號括住再用雙引號括住 bin bash var te...