我有一个问题,我不知道为什么我的代码不起作用
代码:
prot="abc"
awk '{
if ( $1 == $prot )
print $2
}' file.txt
但是当我将我的代码更改为此代码时,它的工作原理是
awk '{
if ( $1 == "abc" )
print $2
}' file.txt
为什么会这样?
答案 0 :(得分:2)
您不能直接在脚本中使用bash变量。
相反,请使用-v
选项:
-v prot="$prot"
所有在一起:
prot="abc"
awk -v prot="$prot" '{
if ( $1 == prot )
print $2
}' file.txt
答案 1 :(得分:0)
以下是另一种变体:
prot="abc"
awk '{
if ( $1 == prot )
print $2
}' prot="$prot" file.txt