循环通过键盘询问用户是否使用文件名或q以bash退出

时间:2016-05-04 19:28:16

标签: bash unix scripting

我遇到了脚本问题我在bash上写了关于备份或恢复的问题。我试图做的是检查参数,然后如果没有出现,则循环直到提供名称或退出。我可以检查参数并循环退出,但我遇到的问题是获取用户输入,然后使用它作为备份文件名。这是我的脚本到目前为止,有人可以建议如何循环文件名/ q以及如何获取所述文件名输入以与脚本的其余部分一起使用?

#!/bin/bash
# Purpose - Backup world directory
# Author - Angus 
# Version - 1.0

FILENAME=$1.tar.gz
SRCDIR=World
DESDIR=backupfolder

if [ $# -eq 0 ]
  then
    echo "No filename detected.  To use this utility a filename is
required.  Usage:tarscript filename"
  else
    echo "The filename to be used will be $filename"
fi


while [ $# -eq 0 ]
do
  echo "Please provide a filename or press q to exit."
  read response
  if [ $response == 'q' ]
    then
      exit
    else [ $response == '$FILENAME' ]
     echo -n 'Would you like to backup or restore? (B/R)'
     read response
       if [ $response == 'B' ]
         then
            tar cvpzf $DESDIR/$FILENAME $SRCDIR
            echo 'Backup completed'
            exit
       fi
  fi
done

1 个答案:

答案 0 :(得分:1)

我终于设法让它最终运转起来。我意识到我的错误是由于Jens并且改变了足够的东西,它现在响应输入和提供的参数。当然,代码几乎是我所有变化的两倍,但是嘿嘿。