0

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

1 回答 1

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

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

于 2013-11-11T06:10:05.807 回答