shell 函数返回字符串的方法

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

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

# 执行结果
[[email protected]-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}"

执行结果:

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

[[email protected]-test shell]# sh test.sh filebeat
安装filebeat

原文地址:https://www.cnblogs.com/root0/p/11896818.html

时间: 2024-08-02 08:40:14

shell 函数返回字符串的方法的相关文章

shell函数返回字符串

shell函数的返回值(return),仅支持整数 #!/bin/sh get_str() { return "string" } get_str echo $? 输出如下: ./test.sh: line 5: return: string: numeric argument required 255 可以看到已经提示要求return 整数类型,真实返回值是255. 解决办法: #!/bin/sh get_str() { echo "string" } echo

Linux Shell函数返回值

转:http://blog.csdn.net/ithomer/article/details/7954577 Shell函数返回值,一般有3种方式:return,argv,echo 1) return 语句shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回.示例: [javascript] view plain copy print? #!/bin/bash - function mytest() { echo "arg1 = $1" if [ $1 = &q

Shell函数返回值、删除函数、在终端调用函数

Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数返回值,可以显式增加return语句:如果不加,会将最后一条命令运行结果作为返回值. Shell 函数返

Shell函数:Shell函数返回值、删除函数、在终端调用函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数

【Shell脚本学习22】Shell 函数:Shell函数返回值、删除函数、在终端调用函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数

shell 函数 返回数组

shell 函数 返回数组,布布扣,bubuko.com

shell中截取字符串的方法总结

shell中截取字符串的方法有很多种, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} 上面4种可以用来进行缺省值的替换. ${#parameter} 上面这种可以获得字符串的长度. ${parameter%word} 最小限度从后面截取word ${parameter%%word} 最大限度从后面截取word ${parameter#word}

关于子函数返回字符串问题集锦

Case1: #include<stdio.h> #include<string.h> #include<stdlib.h> char* getMem(void) { char p[] = "hello world";//这样子定义可以输出,但输出乱码. p[5] = 0x0; return p; } int main() { char *s="fzz"; s=getMem(); printf("%s\n",s

SqlSever基础 Upper函数 返回字符串的大写形式

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 --返回字符串的大写形式 2 select upper('asdf') 2 show ------------------------------------------博文的精髓,在技术部分,更在镇场一诗.SqlSever是优秀的语言,值得努力学习.熟悉数据库的增删查改,写程序