我正在尝试为家庭作业的迷你图书馆编写一个bash脚本,其中一个请求是列出用户租用的书籍。我构建如下的函数,但是如何将$ name变量传递给第4行的awk命令替换?库文件的格式如下
标题,作者,用户,日期
function list_user_books {
echo Enter Name
read name
input=`awk -F, '$3=="$name"' $library | wc -l`
if (( $input == 0 ))
then
echo No Books Found For This User
else
for l in `awk -F, '$3=="$name"' $library`
do
echo $l
done
stop=0
while (( $stop == 0 ))
do
echo
echo "=========================="
echo "(t) Try again"
echo "(b) Back to main menu"
echo -n 'Choose Option to Continue'
read reply
case $reply in
"t") stop=1; list_user_books;;
"b") stop=1; main_menu;;
*) echo illegal choice, enter again:
esac
done
}
答案 0 :(得分:2)
[bash_prompt$]l=hi; echo "hi there" | awk -v i=$l '$1==i'
hi there
上面的例子显示了-v选项如何将bash变量传递给awk变量。你需要使用这个