今天写脚本,遇到awk脚本向shell传参的情况,上网谷歌一下,发现都有些麻烦,通过管道,通过eval,感觉都很复杂.于是想到用read来试一下. 首先构造一个测试文件test.txt,里面的内容是1 2 3. 一开始尝试 awk '{print $1 $2 $3}' test.txt | read a b c 可是echo $a,发现为空,失败了. 试了下 echo "1 2 3" | read a b c 也无法给a b c 赋值 看来read不是这样用的,怒谷歌之,在stacko…
awk中使用shell的环境变量一:"'$var'"这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:var="test"awk 'BEGIN{print "'$var'"}'这种写法其实际是双括号变为单括号的常量,传递给了awk. 如果var中含空格,为了shell不把空格作为分格符,便应该如下使用:var="this is a test"awk 'BEGIN{print "'"$var…
ARGC The number of command line arguments (does not include options to gawk, or the program source). 命令行参数的个数ARGIND The index in ARGV of the current file being processed. 命令行中文件序号ARGV Array of command line argum…
Shell作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行这一条,这种方式称为交互式,但还有另一种执行命令的方式称为批处理方式,用户事先写一个Shell脚本,Shell可以一次把这些命令执行完. 如下例子: #!/bin/bashecho "this is a test"cd ..ls Shell脚本中⽤用#表⽰示注释,相当于C语⾔言的//注释.但如果#位于第⼀一⾏行开头,并且是则例外,它表⽰示该脚本使⽤用后⾯面指定的解释器/bin/sh解释执⾏行.如果把这个脚本⽂文件…