Bash 我要求用户输入标题,但我想比较;输入“;用我的文本文件

Bash 我要求用户输入标题,但我想比较;输入“;用我的文本文件,bash,Bash,((我想做的是比较标题,如果标题存在,则回应“BOOK EXIST” 我希望它将输入与文本文件进行比较。) 下面是一个示例文本文件: #!/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 $existe

((我想做的是比较标题,如果标题存在,则回应“BOOK EXIST”

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

下面是一个示例文本文件:

#!/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
改为:

existed=`awk -F '$1 == $title' $library | wc -l`
  • SHELL不在单引号内展开变量
  • 要将shell变量传递给awk,请使用
    -v name=“$value”
    语法

  • 有什么问题吗?
    existed=$(awk -v title="$title" -F '$1 == title{i++} End{print i}' "$library")