【发布时间】:2014-12-10 17:30:25
【问题描述】:
我的函数接收变量作为参数,例如:
function do()
{
eval "TEST=$1"
}
现在我想在同一个函数中解析一些数据:
function do()
{
eval "TEST=$1"
tail -n+3 file.txt | awk '$1 ~ "[0-9]$" {print "/dev/"$1}'
}
问题是 awk 与传递给函数的参数冲突了它自己的字段分隔符“$1”。
有没有办法在不使用全局变量作为参数的情况下解决它?
【问题讨论】:
-
在单引号内,
$1表示 awk 中的第一个字段。 -
eval在这里不是必需的;请改用declare "TEST=$1"。 -
查看
-v选项以将变量传递给 awk 脚本 -
其实还不清楚为什么
TEST=$1不够用。 -
Using awk with variables 的可能重复项