测试./script.sh doit测试不显示真实输出

时间:2020-06-11 23:18:49

标签: zsh

#!/usr/bin/env zsh

doit() {
    if [[ "$1" = "start" ]]; then
        for loc in $(cat all-doc); do
            if ! screen -list | grep -q My-$loc; then
                screen -dmS My-$loc /home/Server -f /home/$loc.cfg
            fi
        done
    elif [[ "$1" = "stop" ]]; then
        for loc in $(cat all-doc); do
            if screen -list | grep -q My-$loc; then
                pkill -f My-$loc;
            fi
        done
    else
        echo "Option: ERROR..."
    fi
}

nothing() {
    if [[ "$1" = "start" ]]; then
        echo "Option: 1"
    elif [[ "$1" = "stop" ]]; then
        echo "Option: 2"
    else
        echo "Option: 3"
    fi
}

case "$2" in
    start)
           "$1" "$2";
           ;;
    stop)
           "$1" "$2";
           ;;
    restart)
           restart;
           ;;
    *)
           echo "Usage: $0 {doit|nothing} {start|stop|restart}"
           exit 1
           ;;
esac

exit 0

输出:

./script.sh:34> case test (start)
./script.sh:34> case test (stop)
./script.sh:34> case test (restart)
./script.sh:34> case test (*)
./script.sh:45> echo 'Usage: ./script.sh {start|stop|restart}'
sage: ./script.sh {start|stop|restart}
./script.sh:46> exit 1

此脚本用于启动和停止以及重新启动服务器。 如果$ 2与“ start”,“ stop”,“ restart”都不匹配,则两个函数都必须调用else但不起作用。 好的问题是,为什么./script.sh doit test没有打电话 else echo "Option: ERROR..." 什么是sulotion?是否有更好的方法来处理./script.sh $ 1 $ 2我的意思是$ 1得到功能,$ 2得到开始|停止|重新启动?

0 个答案:

没有答案