我想写一个剧本它可以捕获用户在终端中输入的每个命令然后根据输入的命令做一些事情:
例如:
如果用户输入
$> firefox
我想自动启动一些服务,例如
postgresql
apache2
和apache-tomcat
所以我将提供命令名称作为测试用例,然后我可以执行不同的操作!
我如何在 ubuntu 上做到这一点?
答案1
例如,在的情况下firefox
,你可以做一个包装脚本调用firefox
并保存在您的~/bin
目录中。包装器应为可执行文件 ( chmod +x ~/bin/firefox
),并可包含以下行:
#!/bin/bash
#let's start some services
sudo service apache2 start
sudo service postgresql start
sudo service apache-tomcat start
#and finally, let's start firefox
/usr/bin/firefox
如果您想使用更多命令执行相同的操作,那么您可能需要一个类似(我们称之为start_cmd
)的脚本:
#!/bin/bash
if [ $# -eq 0 ];then
echo "Usage: `basename $0` COMMAND"
exit 1
fi
#let's start some services
sudo service apache2 start
sudo service postgresql start
sudo service apache-tomcat start
#and finally, let's run the command
$@
不要忘记使其可执行并将其保存在您的~/bin
目录中。在以下情况下使用firefox
:
start_cmd firefox