有人可以帮忙创建这样的菜单吗?

有人可以帮忙创建这样的菜单吗?

该脚本应提供包含以下选项的菜单:

● 创建脚本文件的备份副本。

  • 备份副本的名称应在脚本名称后有备份,并带有日期戳,例如 Ass3Script_backup_10_11_2015。
  • 应该使用您的主目录的环境变量将其保存到您的主目录。
  • 脚本应该错误地检查文件是否存在并且是否是正常文件。如果不是,那么脚本应该允许用户重新输入文件名,直到输入有效的文件名为止

● 创建带有日期戳的日志文件,例如名为log_file_10_11_2015,其中包含:

  • 登录系统的人员列表,
  • 磁盘使用情况和
  • 您当前正在运行的进程。
  • 该文件应保存到名为 log_dir 的现有目录中,该目录应位于您的主目录之外

● 创建文件的副本。

  • 该文件应该位于你的当前目录中(文件的名称由用户指定)
  • 用户指定的目标目录名称。
  • 脚本应该错误地检查文件是否存在并且是否是正常文件。如果情况并非如此,那么脚本应该允许用户重新输入文件名,直到输入有效的文件名为止。
  • 脚本应该检查目标目录是否存在。如果不存在,则脚本应该允许用户重新输入目标目录,直到输入有效的目录。

● 移动当前目录中文件的位置(名称和目标由用户指定)

  • 脚本应该错误地检查文件是否存在并且是否是正常文件。如果情况并非如此,那么脚本应该允许用户重新输入文件名,直到输入有效的文件名为止。
  • 脚本应该检查目标目录是否存在。如果不存在,则脚本应该允许用户重新输入目标目录,直到输入有效的目录。

● 该脚本应不断循环,直到用户选择退出。

答案1

我不会写出整个答案,但你需要的部分来自这个答案:

Bash 脚本(已更新)片段:

# Running under WSL (Windows Subsystem for Ubuntu)?
if cat /proc/version | grep Microsoft; then
    Distro="WSL"
else
    Distro="Ubuntu"
fi

today=$( date +%Y-%m-%d-%A )
/mnt/e/bin/daily-backup.sh Daily-$(hostname)-$Distro-backup-$today

上述代码生成的文件名为:

Daily-alien-Ubuntu-16.04-Backup-2018-11-29-Thursday.tar.gz.64

在哪里:

  • $(hostname)生产alien(如果您想知道的话,针对 AW17R3)。
  • $Distro产生Ubuntu(当不在 Windows 10 下运行时)。
  • $(lsb_release -sr)生产16.04
  • $Today生产2018-11-29-Thursday(今天的日期)

您可以在本网站和我们的姊妹网站 Unix & Linux 上找到您需要执行的大部分操作的示例代码。互联网上也有大量的代码。

最好是先开始编写脚本,然后当遇到特定代码行的问题时,就此提出问题。我会为你预留一周时间来完成它(只是猜测)。

相关内容