Bash根据“读取”输入调用另一个脚本

时间:2018-08-06 14:05:48

标签: bash

我正试图学习制作简单的bash脚本以在计算机上执行操作,这仅仅是因为我想学习,因为我认为这很有趣(而且我也可以考虑在将来使用)。

我正在尝试编写一个脚本,该脚本分配根据我键入的内容将调用另一个脚本的变量。我设法使用以下命令从变量中调用另一个脚本:

#!/bin/bash
Echo hello please choose you next step
VBA="/Users/zap/VBA.sh"
$VBA

但是现在我希望能够根据用户输入来调用一个或另一个脚本,并且我尝试在下面制作该脚本,以便如果在“读取”部分中键入VBA时运行一个脚本,并且我输入VBB,它运行不同的脚本。但这似乎不起作用,我该如何更改语法以使输出与脚本VBA或VBB一起运行?

#!/bin/bash
Echo hello please choose you next step
VBA="/Users/zap/VBA.sh"
VBB="/Users/zap/VBB.sh"
read IPT
NXT="$"$IPT""
echo $NXT

如果我可以完成这项工作,我将把它变成一个运行sudo shutdown的简单脚本,然后询问我是否要立即关闭(我认为-h)或重新启动(我认为{ {1}}。

1 个答案:

答案 0 :(得分:0)

有一些选择。

1)您可以使用if语句并显式运行所需的命令:

echo Do you want to reboot (Y/N)?
read IPT
if [ "$IPT" = "Y" ] ; then
       shutdown -h now
else
       shutdown -r now
fi

2)您可以尝试强制用户键入命令。 sudo可能很危险    因为用户可能会键入您不想运行的内容。

echo do you want to run VBA or VBB?
read IPT
"/Users/zap/${IPT}.sh"