当前位置:网站首页>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的值都是以命令行参数传入,通过这种参数传入的方式就扩大了通过脚本程序的适用性。
边栏推荐
- Famous blackmail software stops operation and releases decryption keys. Most hospital IOT devices have security vulnerabilities | global network security hotspot on February 14
- How to use C language code to realize the addition and subtraction of complex numbers and output structure
- Go h*ck yourself:online reconnaissance (online reconnaissance)
- Educational Codeforces Round 119 (Rated for Div. 2)
- DM database password policy and login restriction settings
- Flutter 集成 amap_flutter_location
- Cancel ctrl+alt+delete when starting up
- 微服务入门:Gateway网关
- Put a lantern on the website during the Lantern Festival
- NPM run build error
猜你喜欢

一文了解數據异常值檢測方法

1. Qt入门

Basic operations of databases and tables ----- view data tables

DM8 command line installation and database creation

manjaro安装微信

4 small ways to make your Tiktok video clearer

Unity text superscript square representation +text judge whether the text is empty

NewH3C——ACL

From scratch, use Jenkins to build and publish pipeline pipeline project

ArcGIS应用(二十二)Arcmap加载激光雷达las格式数据
随机推荐
ArcGIS应用(二十二)Arcmap加载激光雷达las格式数据
How to play dapr without kubernetes?
Azure ad domain service (II) configure azure file share disk sharing for machines in the domain service
[Chongqing Guangdong education] National Open University spring 2019 455 logistics practice reference questions
Comparison between sentinel and hystrix
Go h*ck yourself:online reconnaissance (online reconnaissance)
[performance test] read JMeter
Moher College webmin unauthenticated remote code execution
Webapi interview question summary 01
Leetcode topic [array] -136- numbers that appear only once
没有Kubernetes怎么玩Dapr?
Put a lantern on the website during the Lantern Festival
广和通高性能4G/5G无线模组解决方案全面推动高效、低碳智能电网
ctfshow web255 web 256 web257
es6总结
Cancel ctrl+alt+delete when starting up
1. Kalman filter - the best linear filter
Leetcode 146. LRU cache
2022 examination questions for safety managers of metal and nonmetal mines (underground mines) and examination papers for safety managers of metal and nonmetal mines (underground mines)
SQL statement view SQL Server 2005 version number