0
#!/bin/bash

library=mylibrary

tmp=mylibrary.tmp

function add_book {

echo Please enter the book title:

read title

existed=`awk -F '$1 == $title' $library | wc -l`

  echo $existed

  if (( $existed == 0 ))

  then 

    echo Please enter the author:

    read author

    location=library

    updated=$title,$author,$location,`date +%F`

    echo $updated >> $library

    echo $updated return successfully!

  else

    echo "Book Exist!"

  fi 

((我想做的是比较标题,如果标题存在,则回显“书存在”

我希望它将输入与文本文件进行比较))

这是一个示例文本文件:

Title,Author,Location,Date Added

jj,jj,library,2013-11-14

hjj,hj,library,2013-11-14

jhj,hjh,library,2013-11-14
4

1 回答 1

0

您的脚本有很多问题,但这似乎是一个阻碍问题:

existed=`awk -F '$1 == $title' $library | wc -l`

将其更改为:

existed=$(awk -v title="$title" -F '$1 == title{i++} End{print i}' "$library")
  1. SHELL 不会在单引号内展开 varialle
  2. 将 shell 变量传递给 awk 使用-v name="$value"语法
于 2013-11-14T20:48:35.360 回答