如何为awk使用多个参数(即#!)我想执行一个呆子脚本--re-interval用弹簧弹。“天真”的方法#!/usr/bin/gawk --re-interval -f... awk script goes here不起作用,因为gawk是用第一个参数调用的。"--re-interval -f"(没有在空格周围分开),它不理解。有解决办法吗?当然,您不能直接调用gawk,而是将其包装到一个可以拆分第一个参数的shell脚本中,或者创建一个shell脚本,然后调用gawk并将该脚本放入另一个文件中,但是我想知道在一个文件中是否有什么方法可以做到这一点。在不同的系统中,谢邦线的行为是不同的-至少在西格温它不会将参数拆分为空格。我只关心如何在这样的系统上执行此操作;脚本不应该是可移植的。
3 回答
狐的传说
TA贡献1804条经验 获得超3个赞
这似乎适用于我(G)awk。
#!/bin/sh
arbitrary_long_name==0 "exec" "/usr/bin/gawk" "--re-interval" "-f" "$0" "$@"
# The real awk program starts here
{ print $0 }
注意#!跑/bin/sh,所以这个脚本首先被解释为一个shell脚本。
一开始,我只是尝试"exec" "/usr/bin/gawk" "--re-interval" "-f" "$0" "$@",但是awk把它当作一个命令,无条件地打印出每一行输入。所以我才把arbitrary_long_name==0-它应该总是失败的.你可以用一些乱七八糟的字符串代替它。基本上,我在awk中寻找一个不会对shell脚本产生不利影响的假条件。
在shell脚本中,arbitrary_long_name==0定义一个名为arbitrary_long_name并将其设置为等于=0.
江户川乱折腾
TA贡献1851条经验 获得超5个赞
#!/usr/bin/foo -i -f
#!/usr/bin/foo -if
- 3 回答
- 0 关注
- 1222 浏览
添加回答
举报
0/150
提交
取消