在bash中使用case语句只传入参数

时间:2018-01-15 13:58:58

标签: bash

我的脚本中有以下代码:

case "$1" in
    (-h)
            display_help
            exit 0
            ;;
    (start)
            start_services
            ;;
    (stop)
            stop_services
            ;;
    (*)
            display_help
            exit 0
            ;;
esac

我希望能够在调用其中一个命令时传入参数。例如,我想只启动用户服务。我会发出以下命令:

./services.sh start users

如果我输入:

./services.sh start

按预期工作,所有服务都已启动。但是,如果我发出附加了服务的命令,如上所述,它仍会启动所有服务,而不仅仅是该服务。 start_services()函数中的代码查找启动该服务的参数。

如何获取它以便它只在case语句中启动一个服务?

1 个答案:

答案 0 :(得分:3)

如果start_services 查找参数,则必须将其传递:

start_services "$2"