使用Bash将输入添加到现有文件

时间:2014-10-30 22:40:40

标签: bash unix

我正在为图书馆记录应用程序(学校)工作。

我需要能够收集用户输入并写入现有文件(添加新记录)。但是,当我尝试这样做时,我收到以下错误:

./minilib.sh: line 12: : No such file or directory

这是我添加新记录的功能

records = "/lib_records.txt"

add_book(){
    echo
    echo "Enter Book Name:"
    read name
    echo "Enter Book Author:"
    read author_name
    echo "$name $author_name" >> "$records"  #this is my line 12
}

知道可能导致错误的原因是什么?任何帮助是极大的赞赏。 以下是文件权限:

-rwxrwxrwx. 1 GSUAD\ GSUAD\domain^users    0 Oct 30 18:04 lib_records.txt
-rwxrwxrwx. 1 GSUAD\ GSUAD\domain^users 1253 Oct 30 18:40 minilib.sh

2 个答案:

答案 0 :(得分:2)

以下是shell脚本的2个问题:

  1. records="./lib_records.txt"=
  2. 之前和之后不应有空格
  3. "./lib_records.txt"代替"/lib_records.txt"
  4. 这是为您修改的脚本。

    records="./lib_records.txt"
    
    add_book(){
        echo
        echo "Enter Book Name:"
        read name
        echo "Enter Book Author:"
        read author_name
        echo "$name $author_name" >> "$records"  #this is my line 12
    }
    
    add_book
    

答案 1 :(得分:1)

您不应将文件存储在/目录(/lib_records.txt)中,因为您可能会收到 Permission denied 错误。其次,删除第一行中的空格。