为命令创建交互式 shell

为命令创建交互式 shell

我有一台运行应用程序(木偶)的服务器,并且服务器的管理几乎完全是通过该程序的特定命令完成的。

将服务器配置为专用设备(类似于 Cisco IOS 使用 puppet 命令的方式)会很方便。

puppet 命令有许多参数,其中许多参数也需要提升,因此我经常键入“sudo puppet command subcommand subcommand argument”。

我希望能够输入“sudo puppet”,然后输入“puppet”上下文,在该上下文中我只需输入顶级命令,而不必输入“sudo puppet 命令”。

然后,在我输入命令并且处于命令上下文中之后,我只需输入子命令和子命令的参数。

我想要实现的目标清楚吗?这可能吗?

答案1

这实际上很容易完成,您可以使用如下脚本:

#!/bin/bash
while [ 1 ]; do
    echo -n "puppet> "
    read input
    puppet $input
done

使用类似 的名称保存foo.sh,然后运行sudo bash foo.sh(或者sudo ./foo.sh如果您设置了可执行标志)。

相关内容