如何创建带参数的Shell脚本?

Bash

1 前言

一个问题,一篇文章,一出故事。
笔者经常写一些脚本,想着便于规范,于是写一个简单且规范一点的Demo,以便后面套用。

2 最佳实践

2.1 简单的参数范例

#!/bin/bash

if [ "$1" == "" ]; then
        echo "Usage: $0 parameter"
        exit 1;
fi

echo "execute script"
exit 0

注:脚本应当默认带参数提示,防止直接执行。

2.2 多参数范例

#!/bin/bash

addUser() {
        echo addUser
}

getUser() {
        echo getUser
}

delUser() {
        echo delUser
}

case "$1" in
        add)
                addUser
                ;;
        get)
                getUser
                ;;
        del)
                delUser
                ;;
        *)
                echo "Usage: $0 {add|get|del}"
                ;;
esac
exit 0

2.3 多层多参数范例

#!/bin/bash

parameter1="$1"
parameter2="$2"

addUser() {
        echo addUser
}

getUser() {
        echo getUser
}

delUser() {
        echo delUser
}

resetUserPasswd() {
        echo resetUserPasswd
}

sendUserPasswd() {
        echo sendUserPasswd
}

case "$parameter1" in
        user)
                case "$parameter2" in
                        add)
                                addUser
                                ;;
                        get)
                                getUser
                                ;;
                        del)
                                delUser
                                ;;
                        *)
                                echo "Usage: $0 user {add|get|del}"
                                ;;
                esac
                ;;
        passwd)
                case "$parameter2" in
                        reset)
                                resetUserPasswd
                                ;;
                        send)
                                sendUserPasswd
                                ;;
                        *)
                                echo "Usage: $0 passwd {reset|send}"
                                ;;
                esac
                ;;
        *)
                echo "Usage: $0 {user|passwd}"
                ;;
esac
exit 0
没有评论

发表回复

Bash
如何Telnet自动登录路由器执行命令?

1 前言 一个问题,一篇文章,一出故事。 最近在笔者需要一个脚本自动从路由读取一些信息,因此整理本章 …

Bash
如何防止Base Shell脚本重复执行?

1 前言 一个问题,一篇文章,一出故事。 笔者最近发现脚本因为重复执行而损耗服务器性能,因此解决此问 …

Bash
如何实现Base Shell的数值百分比计算?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要通过Base Shell实现一个计算Quota …