我的函数接收变量作为参数,例如:
function do()
{
eval "TEST=$1"
}
Run Code Online (Sandbox Code Playgroud)
现在我想在同一个函数中解析一些数据:
function do()
{
eval "TEST=$1"
tail -n+3 file.txt | awk '$1 ~ "[0-9]$" {print "/dev/"$1}'
}
Run Code Online (Sandbox Code Playgroud)
问题是 awk 与传递给函数的参数冲突了它自己的字段分隔符“$1”。
有没有办法在不使用全局变量作为参数的情况下解决它?
使用该-v选项声明一个awk保存函数参数值的变量。
function do()
{
TEST=$1
tail -n+3 file.txt | awk -v test="$TEST" '$1 ~ /[0-9]$/ {print "/dev/"test}'
}
Run Code Online (Sandbox Code Playgroud)