首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何更新书名?

如何更新书名?
EN

Stack Overflow用户
提问于 2015-01-22 15:54:24
回答 1查看 334关注 0票数 1

好的..。我在更新新书标题时遇到了问题..我已经在这个网站上寻找解决方案了..我试过了,但都不管用..

代码语言:javascript
运行
复制
function update_book
{
   #echo "Title: "
   read -p $'Title: ' updatetitle
   #echo "Author: "
   read -p $'Name: ' updatename

  if grep -Fq "${updatetitle}:${updatename}" BookDB.txt
   then
      echo "Book found!"

      if ! [ -f BookDB.txt ] ; then 
touch BookDB.txt
fi

selection=0
until [ "$selection" = "f" ]; do
      echo ""
      echo ""
      echo "Book Update System"
      echo ""
      echo ""
      echo "a) Update title"
      echo "b) Update Author"
      echo "c) Update Price"
      echo "d) Update Qty Available"
      echo "e) Update Qty Sold"
      echo "f) Back to main menu"

      echo -n "Enter your option: "
      read selection
      echo ""
      case $selection in
            a) upd_title;press_enter;;
            b) upd_author;press_enter;;
            c) upd_price;press_enter;;
            d) upd_qty_avail;press_enter;;
            e) upd_qty_sold;press_enter;;
            f) main_menu;press_enter;;
            * ) tput setf 4;echo "Please enter a, b, c, d, e, or f";tput setf 7; press_enter
      esac
    done  

   else
      echo "Error!! Book does not exist!" #not found
   fi   
}

好的,我已经对这个函数的代码做了一些修改。我发现我应该使用awk从旧的更新到新的。并使用grep来获得行number..so最好我坚持这样做..

代码语言:javascript
运行
复制
function upd_title
{
  read -p 'New title: ' title
  #awk '/liine/{ print NR; exit }' BookDB.txt
  grep -n 'regex' | sed 's/^\([0-9]\+\):.*$/\1/'
  awk 'NR==n{$1=a}1' FS=":" OFS =":" n=$linenumber a = $title BookDB.txt
  echo "New title successfully updated!!"

}

但在我试过那段代码之后..。这是我得到的:

代码语言:javascript
运行
复制
Advanced Book Inventory System


1) Add new book
2) Remove existing book info
3) Update book info and quantity
4) Search for book by title/author
5) Process a book sold
6) Inventory summary report
7) Quit
Enter your option: 3

Title: The Notebook
Name: Nicholas Sparks
Book found!


    Book Update System


a) Update title
b) Update Author
c) Update Price
d) Update Qty Available
e) Update Qty Sold
f) Back to main menu
Enter your option: a

New title: Notebook

仍然不更新标题..>.<谁能帮我指出问题出在哪里?我是不是漏掉了什么

请告诉我怎么做..谢谢!:D :D

EN

回答 1

Stack Overflow用户

发布于 2015-01-22 16:51:29

update_book()中的read语句定义的$updatetitle$updateauthorupd_title()和您定义的其他函数中不可见。

在它们被read in之后,尝试对它们进行export。如果这不起作用,则将它们作为位置参数传递给update_title()

代码语言:javascript
运行
复制
upd_title $update_title $update_author

...

function upd_title
{
    update_title=$1
    update_author=$2
    ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28083696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档