Bash将键盘输入变量传递给awk

时间:2013-11-11 05:58:00

标签: bash

我正在尝试为家庭作业的迷你图书馆编写一个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    
}

1 个答案:

答案 0 :(得分:2)

[bash_prompt$]l=hi; echo "hi there" | awk -v i=$l '$1==i'
hi there

上面的例子显示了-v选项如何将bash变量传递给awk变量。你需要使用这个