如何创建带参数的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
如何使用expect自动输入密码?

1 前言 一个问题,一篇文章,一出故事。 笔者最近在一个脚本中使用“adcli passwd-use …

Bash
如何实现SFTP自动上传下载?

1 前言 一个问题,一篇文章,一出故事。 笔者最近需要实现sftp自动上传下载,于是整理此文。 以下 …

Bash
如何实现Base Shell根据关键字获取数组?

1 前言 一个问题,一篇文章,一出故事。 笔者最近写一个Shell发现同一个脚本需要引用两个以上AD …