![使用多个选项配置脚本](https://linux22.com/image/949732/%E4%BD%BF%E7%94%A8%E5%A4%9A%E4%B8%AA%E9%80%89%E9%A1%B9%E9%85%8D%E7%BD%AE%E8%84%9A%E6%9C%AC.png)
我正在编写一个脚本供个人使用和学习。我希望在脚本顶部有一些可以更改/配置的选项,每次执行脚本时我都可以更改这些选项。
下面只是我想要实现的一个随机示例。
我希望配置脚本以便:如果我定义Backup="timeshift"
,则应执行相关命令,例如
Command 1 #install timeshift
Command 2 #configure timeshit
Command 3 #make a backup with timeshift
但如果我定义了Backup="snapper"
,那么它应该安装相关命令,而不是时间移位命令。
Command 4 #install snapper
Command 5 #configure snapper
Command 6 #make a backup with snapper
我还需要脚本在某些部分执行某些命令或不执行任何操作。例如network_backup="true"
:
Command 7 # upload to the cloud storage
但是如果我network_backup="false"
在脚本顶部定义,那么就不应该执行任何操作。
我是编写脚本的新手。
实现我所解释内容的最简单方法是什么。如果有人能解释实现上述内容的另一种/更好的方法,我会很高兴。
答案1
你知道自己想要解决的问题。这是第一步。你也知道成功对你来说是什么样子;这是第二步。现在缺少的是如何思考你想要的和你得到的东西之间的路径。
既然你正在学习,我会建议我认为可能是最佳的方法,然后由你来编写代码。
对于您想要运行的每个备份程序,编写一个bash 函数运行以下命令:
- 判断该程序是否安装;
- 如果没有,请安装;
- 确定程序是否按您希望的方式配置;
- 如果不是,请进行配置;并且
- 返回退出代码让你知道事情进展如何。
然后,您可以向用户显示程序列表(菜单)并让他们选择一个。这将调用相应的函数。
此后,所需的程序要么已安装并配置,要么未安装并配置,并且您知道是哪种情况。如果失败,您需要退出以便进行调查;如果成功,您将运行该程序。请从此处获取退出代码。
至于其余的“执行命令或不执行任何操作”,设置一个或多个“是/否”提示很简单,同时考虑到备份程序的退出代码。
(现在,如果是我的话,我会为每个程序编写一个单独的脚本。但我更喜欢简单,并且我不介意维护两个或三个简单的脚本而不是一个更复杂的脚本。)