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