在命令提示符下将操作作为参数传递(Linux)

use*_*079 4 linux bash shell

我在linux bash中编写了一个程序,以下是启动/停止该程序的方法:

start_program
stop_program
restart_program.
Run Code Online (Sandbox Code Playgroud)

我在/ usr/bin中复制了上面的脚本,因此这些脚本作为命令工作.但我想要而不是上面的命令我只需键入程序名称然后将操作作为参数传递.例如,如果我想启动程序,那么我应该在命令提示符下写:

ProgramName start
Run Code Online (Sandbox Code Playgroud)

如果我想卸载那么

ProgramName uninstall
Run Code Online (Sandbox Code Playgroud)

如果重启

ProgramName restart
Run Code Online (Sandbox Code Playgroud)

所以我怎么能做到这一点,我只是编写程序名称然后传递动作作为参数,然后按回车来做那件事.

Sio*_*e21 11

一种常见的方法是使用case语句:

case "$1" in
  start)
    # Your Start Code
    ;;
  stop)
    # Your Stop Code
    ;;
  restart)
    # Your Restart Code
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}" >&2
    exit 1
    ;;
esac
Run Code Online (Sandbox Code Playgroud)

如果您restart就在stop那时start,您可以:

start() {
  # Your Start Code
}

stop() {
  # Your Stop Code
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}" >&2
    exit 1
    ;;
esac
Run Code Online (Sandbox Code Playgroud)