shell 函数返回字符串的方法

Posted 平凡之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 函数返回字符串的方法相关的知识,希望对你有一定的参考价值。

shell的函数只能返回整数值,如果想让函数返回字符串可以在函数调用处为变量赋值。

# 定义函数
function test() { name
=$1 echo "123213" }
# 调用函数,执行结果赋值给变量ret ret
=$(test "lishichao") echo $ret

# 执行结果 [root@dev
-test shell]# sh test.sh 123213

 

最近在写一键安装脚本,一个一个判断输入参数太麻烦,所以使用shell字典匹配对应函数。

技术图片
function main(){
    if [[ $USER != "root" ]]
    then
        echo "Please use root account"
        exit
    fi
    if [[ -z $VAR ]]
    then
        echo "please input your action:pypy,nginx,redis,mysql,hall0,hall37"
        exit
    fi

    case $VAR in
        "pypy")
            install_pypy5
            ;;
        "nginx")
            nginx
            ;;
        "redis")
            install_redis
            ;;
        "mysql")
            install_mysql
            ;;
        "hall0")
            hall0
            ;;
        "hall37")
            hall37
            ;;
        *)
            echo "please  input your action:pypy,nginx,redis,mysql,hall0,hall37"
            ;;
    esac
}

main
使用case判断输入参数

 

function install_php() {
    echo "安装php7"
    exit 0
}

function install_filebeat() {
    echo "安装filebeat"
    exit 0
}

function install_rabbitmq() {
    echo "安装rabbitmq"
    exit 0
}

function install_logstash() {
    echo "安装logstash"
    exit 0
}


declare -A dic
dic=([php]=install_php [logstash]=install_logstash [filebeat]=install_filebeat)

VAR=$1
for key in $(echo ${!dic[*]})
do
    if [[ $VAR == $key ]];then
       ${dic[$VAR]} 
       echo "$key"
    fi
done

echo "$(pwd)/$0 {pypy | nginx | redis | mysql | hall0 | hall37 | rabbitmq | logstash | filebeat}"

 

执行结果:

[root@dev-test shell]# sh test.sh 
/opt/shell/test.sh {pypy | nginx | redis | mysql | hall0 | hall37 | rabbitmq | logstash | filebeat}
[root@dev
-test shell]# sh test.sh logstash 安装logstash [root@dev-test shell]# sh test.sh filebeat 安装filebeat

 

以上是关于shell 函数返回字符串的方法的主要内容,如果未能解决你的问题,请参考以下文章

20155307刘浩《网络对抗》逆向及Bof基础

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

20155311高梓云《网络对抗》逆向及Bof基础

20145301赵嘉鑫《网络对抗》逆向及Bof基础

shell 函数返回字符串的方法

shell函数