我是shell脚本的新手,我遇到了一些代码问题。目前,我有这行代码能够在我的终端上完美运行,这将为我提供我正在寻找的结果:
cat BookDB.txt | awk -F ":" '$1 ~ $Title'
但是,当我尝试在我的脚本中实现它时,没有显示结果。有人能帮我解决这个问题吗?
答案 0 :(得分:3)
$ Title应该是一个shell变量吗?如果是这样,shell就无法替换它,因为awk主体是单引号。使用awk的-v
选项将shell变量传递给awk:
awk -F : -v "title=$Title" '$1 ~ title' BookDB.txt
另见https://en.wikipedia.org/wiki/Cat_(Unix)#Useless_use_of_cat