如何创建带参数的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
如何实现文件夹路径转纯数字符串?

1 前言 一个问题,一篇文章,一出故事。 由于由于需要设置某目录的配额,配额要求为每个目录指定一个项 …

Bash
如何统计Linux打开文件前10进程?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有台服务最近压力比较大,打开的文件数量不断地往 …

Bash
如何获取VSFTP昨天活跃和有效用户?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有台老旧的FTP服务器,用户众多。笔者希望每天 …