当执行某些命令时执行某些动作!

当执行某些命令时执行某些动作!

我想写一个剧本它可以捕获用户在终端中输入的每个命令然后根据输入的命令做一些事情:

例如:

如果用户输入

$> firefox

我想自动启动一些服务,例如

postgresql apache2apache-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

相关内容