在命令行中给变量赋值

在命令行中给变量赋值

Content #

可以通过gawk命令行来为脚本中的变量赋值。这允许你在正常的代码之外赋值,即时修改变量值。下面的例子使用命令行变量来显示文件中特定的数据字段: $ cat script1 BEGIN{FS=","} {print $n} $ gawk -f script1 n=2 data1 data12 data22 data32 $ gawk -f script1 n=3 data1 data13 data23 data33 $ 这个特性可以让你在不修改脚本代码的情况下就改变脚本的行为。第一个例子显示了文件的第二个字段,而第二个例子显示了第三个字段,这只需在命令行中设置变量n的值即可。

使用命令行参数来定义变量值会产生一个问题:在设置过变量之后,这个值在脚本的BEGIN部分不可用。 $ cat script2 BEGIN{print “The starting value is”,n; FS=","} {print $n} $ gawk -f script2 n=3 data1 The starting value is data13 data23 data33 $ 可以用-v选项来解决这个问题,它允许在BEGIN部分之前设定变量。在命令行中,-v选项必须放在脚本代码之前: $ gawk -v n=3 -f script2 data1 The starting value is 3 data13 data23 data33 $ 现在,BEGIN部分中的变量n的值就已经是命令行中设定的那个值了。

From #

Linux命令行与shell脚本编程大全