当前位置:网站首页>awk从入门到入土(4)用户自定义变量
awk从入门到入土(4)用户自定义变量
2022-07-04 08:38:00 【奇妙之二进制】
无类型
BEGIN{}{ num = 100; # 先存个整数 print("num is: "num); num = 3.1415926; # 再来存个浮点数 print("num is: "num); num = "I'm string."; # 最后看看字符串 print("num is:"num);}END{}
$echo “” |awk -f chapter_2_2-1.awk
num is: 100
num is: 3.14159
num is:I’m string.
awk变量就像所有其他脚本语言那样是无类型的,可以存储任意类型的值,并且可以随时进行改变,后面这点区别于支持类型推断的语言(如:C#,定义时虽然不用指定类型,但是一旦赋值后类型就固定了)。
无需定义
BEGIN{}{ print("var is:"var); # 我擦嘞,这直接就用上了}END{}
$echo “”|awk -f chapter_2_2-2.awk
var is:
变量随用随写,即使使用没初始化过的变量也不会报错。
全局性
BEGIN{ print("i in begin: "i);}{ ++i; print("i in body: "i);}END{ print("i in end: "i);}
$cat chapter_2_2-3.awk |awk -f chapter_2_2-3.awk
i in begin:
i in body: 1
i in body: 2
i in body: 3
i in body: 4
i in body: 5
i in body: 6
i in body: 7
i in body: 8
i in body: 9
i in body: 10
i in end: 10
awk中所有的变量,无论是出现在BEGIN中的、BODY中的、END中的,抑或是后面要提到的function中的,通通都是全局的,也就是说只要变量名字相同,无论在任何地方做出了修改,其值都会延续到下一段执行的代码行上。这是变量使用中特别要注意的地方,否则就可能引发各种莫名其妙的问题。
传参变量
BEGIN{ print(x); print("i in begin: "i);}{ ++i; print("i in body: "i);}END{ print("i in end: "i);}
$cat chapter_2_2-4.awk |awk -v x=“I’m X” -v i=100 -f chapter_2_2-4.awk
I’m X
i in begin: 100
i in body: 101
i in body: 102
i in body: 103
i in body: 104
i in body: 105
i in body: 106
i in body: 107
i in body: 108
i in body: 109
i in body: 110
i in body: 111
i in end: 111
变量除可以在程序中进行赋值外也可以在命令行调用的时候进行,如上面例程,x和i的值都是以命令行参数传入,通过这种参数传入的方式就扩大了通过脚本程序的适用性。
边栏推荐
- Call Baidu map to display the current position
- Developers really review CSDN question and answer function, and there are many improvements~
- 埃氏筛+欧拉筛+区间筛
- manjaro安装微信
- ctfshow web255 web 256 web257
- How to choose solid state hard disk and mechanical hard disk in computer
- Redis 哨兵机制
- yolov5 xml数据集转换为VOC数据集
- 没有Kubernetes怎么玩Dapr?
- Conversion of yolov5 XML dataset to VOC dataset
猜你喜欢
Four essential material websites for we media people to help you easily create popular models
DM8 database recovery based on point in time
ctfshow web255 web 256 web257
Go zero micro service practical series (IX. ultimate optimization of seckill performance)
manjaro安装微信
Conversion of yolov5 XML dataset to VOC dataset
How to solve the problem that computers often flash
Wechat has new functions, and the test is started again
es6总结
The basic syntax of mermaid in typera
随机推荐
Do you know about autorl in intensive learning? A summary of articles written by more than ten scholars including Oxford University and Google
Const string inside function - C #
Scanf read in data type symbol table
[CV] Wu Enda machine learning course notes | Chapter 9
2022 tower crane driver examination and tower crane driver examination questions and analysis
FRP intranet penetration, reverse proxy
Mouse over to change the transparency of web page image
NewH3C——ACL
How to improve your system architecture?
Sort by item from the list within the list - C #
deno debugger
Unity-写入Word
PHP session variable passed from form - PHP
【性能测试】一文读懂Jmeter
Sports [running 01] a programmer's half horse challenge: preparation before running + adjustment during running + recovery after running (experience sharing)
Technology sharing | MySQL parallel DDL
How to play dapr without kubernetes?
R language uses cforest function in Party package to build random forest based on conditional inference trees, uses varimp function to check feature importance, and uses table function to calculate co
Cannot click button when method is running - C #
High order phase difference such as smear caused by myopic surgery