awk中调用shell命令并且取得命令的返回值
(2018-02-06 13:27:55)
标签:
awk
shell
awk是一种很方便的文件编辑命令,我们在编写shell的时候经常会用到它来处理文件。但是在某些情况下,我们又需要在awk中调用一些shell命令来做一些特殊的操作,那么awk怎么来调用shell命令,而且可以取得shell命令的返回值来做判断呢。
在shell程序中取得命令的返回值很简单,比如
$ ls /home/test
$ echo $?
那么在awk中可以通过下面的方式来取得。
首先我们新建了一个文件test,里面是两个目录的路径,第一个是实际存在的,第二个是不存在的。
$ cat test
/home/test
/home/test111
然后我们执行下面的awk命令,来取得ls执行之后的返回值
$ awk '{cmd="ls " $1 ">/dev/null
2>&1";rc=system(cmd);print "RC:", rc}' test
RC: 0
RC: 2
*说明:
1.首先我们新建一个cmd变量,把需要执行的shell命令拼接起来赋给cmd
2.通过system来执行shell命令,把返回值付给rc变量
3.把rc变量打印到屏幕输出
如果想把出错信息也显示到屏幕的话,把2>&1去掉即可。
通过输出的信息我们看到,第一个ls命令的返回值是0,第二个ls命令的返回值是2。
这样就取到了shell命令执行的返回值,那么在awk程序中可以利用返回值来做后续的判断处理。
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。