too*_*oop 0 unix linux bash shell awk
在bash脚本中使用下面的awk说:
如何让print_line函数打印传入的参数的名称?即这个输出
array passed in was:
arrayprime
array passed in was:
arraymagic
Run Code Online (Sandbox Code Playgroud)
只是代码要点的片段(不是整件事):
awk -F"$delim" '
NR>1 {
print_line(arrayprime)
print_line(arraymagic)
}
func print_line(arr)
{
print "array passed in was:"
print arr
}
} ' "$filename"
Run Code Online (Sandbox Code Playgroud)
不,awk没有能力成为这种内省.
该C语言可以通过使用C预处理器来实现.如果你真的想将这种类型的行为转换为你的awk函数,那么你可以考虑使用C预处理器或者编写一个GNU M4宏
如果您愿意再添加一个参数,那么您可以这样做.
awk -F"$delim" '
NR>1 {
print_line(arrayprime, "arrayprime")
print_line(arraymagic, "arraymagic")
}
func print_line(arr, name)
{
print "array passed in was:"
print name
}
}' "$filename"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |