【发布时间】:2016-04-26 00:18:48
【问题描述】:
刚刚发现我在“awk”中使用 switch-case 的问题与这个知识库中的完全一样:
switch/case doesn't work in awk
现在我在 bash 脚本中使用我的 awk 语句,而不是将它作为单独的 AWK 脚本文件运行。考虑到我如何在我的 bash 脚本中使用--enable-switch。这是我的脚本的结构:
#! bin/ksh
. ~/.profile
// bash if-else statements to perform some tasks
/usr/bin/awk '
BEGIN {
// array[] defined
}
// some statements
function printmsg(msg) {
switch(1) {
case /pattern1/:
print msg
break
case /pattern2/:
print msg
break
}
}' file
我在哪里可以强制执行--enable-switch?
我的 GAWK 版本是gawk-3.1.5-16.el5
【问题讨论】:
-
我认为你是对的。所以我现在唯一的选择是将它们更改为几个 if-else 语句:)
-
根据我对 3.1.7 的 gawk 手册页的解释,
--enable-switch选项是编译时选项而不是运行时命令行选项,除非它首先使用--enable-switch选项编译.我安装了 4.1.3 版本,switch是一个有效的 控制语句 并且不需要使用它。因此,如果--enable-switch选项不起作用,我相信您要么需要使用将switch编译成可执行文件的更高版本,要么您需要获取您正在使用的版本的源代码,并且使用--enable-switch选项编译它。