awk命令中执行多条shell命令
一。使用system()
二。使用print cmd | “/bin/bash”
http://www.gnu.org/software/gawk/manual/gawk.html#I_002fO-Functions
一。使用所以system()
awk程序中我们可以使用system() 函数去调用shell命令
root@ubuntu:~# awk 'BEGIN{system("echo abc")}'
abc
root@ubuntu:~#
root@ubuntu:~# awk 'BEGIN{v1="echo";v2="abc";system(v1" "v2)}'
abc
root@ubuntu:~#
root@ubuntu:~# awk 'BEGIN{v1="echo";v2="abc";system(v1 v2)}'
/bin/sh: echoabc: command not found
root@ubuntu:~#
root@ubuntu:~# awk 'BEGIN{v1=echo;v2=abc;system(v1" "v2)}'
root@ubuntu:~#
从上面的例子,我们简单的分析一下awk是怎样调用system的:
如果system()括号里面的参数没有加上双引号的话,awk认为它是一个变量,它会从awk的变量里面把它们先置换为常量,然后再回传给shell
如果system()括号里面的参数有加上双引号的话,那么awk就直接把引号里面的内容回传给shell,作为shell的“命令行”
二。使用print cmd | “/bin/bash”
root@ubuntu:~# awk 'BEGIN{print "echo","abc"| "/bin/bash"}'
abc
root@ubuntu:~#
root@ubuntu:~# awk 'BEGIN{print "echo","abc",";","echo","123"| "/bin/bash"}'
abc
123
root@ubuntu:~#
三。总结
无论使用system()还是print cmd | “/bin/bash”
awk都是新开一个shell,在相应的cmdline参数送回给shell,所以要注意当前shell变量与新开shell变量问题
1.1
root@ubuntu:~# abc=12345567890
root@ubuntu:~# awk 'BEGIN{system("echo $abc")}'
root@ubuntu:~#
1.2
root@ubuntu:~# export abc=12345567890
root@ubuntu:~# awk 'BEGIN{system("echo $abc")}'
12345567890
root@ubuntu:~#
2.1
root@ubuntu:~# abc=1234567890
root@ubuntu:~# awk 'BEGIN{print "echo","$abc"| "/bin/bash"}'
root@ubuntu:~#
2.2
root@ubuntu:~# export abc=1234567890
root@ubuntu:~# awk 'BEGIN{print "echo","$abc"| "/bin/bash"}'
1234567890
root@ubuntu:~#
以上例子,没有export的话,那些变量都是只存在于当前shell变量中,所以都是echo不出来的 ,
而使用了 export的都是环境变量,所以awk调用新的shell时候,可以echo出来
awk命令中执行多条shell命令相关推荐
- pythonsubprocess执行多条shell命令_python中subprocess批量执行linux命令
可以执行shell命令的相关模块和函数有: os.system os.spawn os.popen --废弃 popen --废弃 commands --废弃,3.x中被移除 以上执行shell命令的 ...
- php exec执行多条命令,小技巧:在PHP中调用多条shell指令
原标题:小技巧:在PHP中调用多条shell指令 有时候,在持续集成的过程中,需要通过网页在目标服务器上执行shell指令,今天就列举一个实例进行讲解. 比如,我们需要能通过网页将SVN update ...
- java解析shell命令_Android中执行java命令的方法及java代码执行并解析shell命令
这篇文章给大家介绍Android中执行java命令的方法及java代码执行并解析shell命令,需要的朋友一起学习 android中执行java命令的方法大家都晓得吗,下面一段内容给大家带来了具体解析 ...
- 分享平时工作中那些给力的shell命令(更新版)
分享平时工作中那些给力的shell命令(更新版) 分享平时工作中那些给力的shell命令---(Notice: 蓝色部分为在网友孤风颠影基础上新增加内容) 原帖地址为:http://yunhaozou ...
- 分享平时工作中那些给力的shell命令
标签:基础 工作 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://255361.blog.51cto.com/245361/836 ...
- python执行shell命令查看输出_python 运行 shell 命令并捕获输出_python_酷徒编程知识库...
这个问题的答案取决于你使用的python 版本. 最简单的方法是使用 subprocess.check_output 函数:>>> subprocess.check_output([ ...
- 如何使用 Java 中执行 Windows 的 CMD 命令
如何使用 Java 中执行 Windows 的 CMD 命令 核心代码 完整代码 在 CMD 中执行 BAT 脚本对用户不友好,而且有安全隐患,因此笔者编写了一些可以在 Java 中执行 Wind ...
- c mysql并行多条sql_Linux上使用C语言执行多条SQL命令访问MYSQL数据库的有关问题...
Linux下使用c语言执行多条SQL命令访问mysql数据库的问题 Linux(Ubuntu10.04)系统,MYSQL5.1数据库,C语言! 数据库中有两张表:表A.B! 使用C语言从表A中查询数据 ...
- sharpssh远程linux监控系统,利用SharpSsh远程执行linux的shell命令
利用SharpSsh远程执行linux的shell命令 (2011-07-26 14:38:02) SharpSSH是一个C#的开源项目,可以利用SSH连接linux系统.并执行shell等命令. 而 ...
最新文章
- PyTorch实现L2和L1正则化的方法 | CSDN博文精选
- 总也学不会Linux命令行?这本新书大概率能拯救你!
- verilog编译指令
- 全球及中国血铅检测服务行业应用动态及未来产销需求预测报告2022版
- python代码300行程序_Python:游戏:300行代码实现俄罗斯方块
- TransactionScope 分布式事务
- 深入理解JavaScript系列(32):设计模式之观察者模式
- 用doxygen自动生成文档
- TensorFlow 保存和加载模型
- ssis 执行任务的日志_SSIS和PowerShell –执行流程任务
- eclipse 常用设置(二)
- 【智力题】拿硬币(数数字)、游戏
- android camera预览帧,android camera2处理每一帧并显示其预览
- docker给php装swoole,制作php+swoole的Docker环境
- Active Directory攻防实验室环境搭建教程(一)
- 前端通信实现l聊天室
- 13.包装类和字符串
- Hudi-集成Flink(Flink操作hudi表)
- 同时复制保存微商相册多个商品的图片及描述
- opencv + face_recognition —— 人脸识别案例
热门文章
- java控制台输入的数据存放在数据库表中_JDBC完成修改(使用控制台输入)
- 扫掠两条引导线_NX10 入门图文教程——异形台架(扫掠或者沿引导线扫掠)
- python数据分析要学什么_python数据分析学什么?python数据分析入门
- 华师大数据科学考研_2020年华东师范大学行政管理专业考研报录比、参考书目、考研经验分享...
- ios手机怎么连接adb命令_手机蓝牙怎么连接汽车蓝牙放音乐,车载蓝牙播放器怎么用...
- css中的margin和padding
- Java CSV文件读取、写入及追加
- 红警2Linux版本
- vcenter用到java吗_Vijava 学习笔记之 VCenter连接
- linux 启动nacos报错_nacos在Linux上的搭建启动报错