【发布时间】:2011-11-26 21:58:20
【问题描述】:
我正在编写一个 shell 脚本,它需要从如下所示的文本文件中提取值:
app.full.name /warfilelocation/ warfilename
我的 shell 脚本将遍历应用程序名称列表并使用 AWK 提取位置或名称。我已经使用以下命令在命令行上进行了测试: awk "\$1 ~/app.full.name/ { print $2 }" applications.txt
它返回我所期望的,但是当我把它放在一个 shell 脚本中时,我开始遇到问题。
我有一个看起来像这样的函数:
function get_location() {
local application=$1
awk "\$1 ~/^$application/ { print \$2 }" applications.txt
}
但是当我调用这个函数时,我得到以下错误:
awk: $1 ~/^app.full.name
awk: ^ unterminated regexp
awk: cmd. line:1: app.full.name
awk: cmd. line:1: ^ syntax error
awk: cmd. line:2: app.full.name/ { print $2 }
awk: cmd. line:2: ^ syntax error
有没有人知道我在这里做错了什么。我认为我没有正确地转义变量,但无论我尝试什么,它似乎都不起作用。
提前致谢
【问题讨论】:
-
你是如何调用函数的?应用的价值是什么?