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 函数返回值与字典的更多相关文章

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

    函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: f ...

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

    Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] ...

  3. Linux Shell 函数返回值

    Shell函数返回值,常用的两种方式:return,echo 1) return 语句 shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回. 示例: #!/bin/sh fu ...

  4. Linux Shell函数返回值

    转:http://blog.csdn.net/ithomer/article/details/7954577 Shell函数返回值,一般有3种方式:return,argv,echo 1) return ...

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

    函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: f ...

  6. linux shell 函数返回值问题(超过255)

    最近再写一个shell测试的时候出现问题,函数返回值异常 用shell计算斐波那契数列数列,写了一个shell函数,然后调用的,验证的时候我只随便计算了几个数(10以内),确认结果是正确的就提交了,后 ...

  7. shell函数返回值

    1.用return作为函数的退出状态,然后通过echo $?来得到函数返回值,注意,return返回的值限定为0-255. 例子: #! /bin/bash sum() { let "z=$ ...

  8. Linux下Shell函数返回值实现种类

    shell在执行的时候是顺序执行的,也不存在什么多线程什么的. 一下是实现种类: 1.全局 g_result="" function testFunc() { g_result=' ...

  9. shell调用函数返回值深入分析

    编写shell脚本过程中,我们经常会自定义一些函数,并根据函数的返回值不同来执行相应的流程,那么我们如何来获取函数的返回值呢? 首先shell中调用函数有两种方式: 第一种:value=`functi ...

随机推荐

  1. python使用笔记29--代码驱动

    1 import unittest 2 import requests 3 import jsonpath 4 import time 5 import nnreport 6 7 def get_va ...

  2. Bat脚本备份sqlserver 表结构、存储过程、函数、指定表数据

    Bat脚本备份sqlserver 表结构.存储过程.指定表数据: @echo off cd /d %~dp0 ::备份表结构.存储过程和部分配置表的数据 set LogFile=report.log ...

  3. 随机数种子(random seed)

    在科学技术和机器学习等其他算法相关任务中,我们经常需要用到随机数,为了把握随机数的生成特性,从随机数的随机无序中获得确定和秩序.我们可以利用随机数种子(random seed)来实现这一目标,随机数种 ...

  4. 《PHP 实现 Base64 编码/解码》笔记

    前言 早在去年 11 月底就已经看过<PHP 实现 Base64 编码/解码>这篇文章了,由于当时所掌握的位运算知识过于薄弱,所以就算是看过几遍也是囫囵吞枣一般,不出几日便忘记了其滋味. ...

  5. 在R中使用Keras和TensorFlow构建深度学习模型

    一.以TensorFlow为后端的Keras框架安装 #首先在ubuntu16.04中运行以下代码 sudo apt-get install libcurl4-openssl-dev libssl-d ...

  6. 五个 .NET 性能小贴士

    原文:bit.ly/3wSpO4o 作者:Nikita Starichenko 翻译:精致码农 大家好!今天我想和大家分享几个 .NET 的性能小贴士与基准测试. 我的系统环境: BenchmarkD ...

  7. P4180 [BJWC2010]严格次小生成树

    P4180 [BJWC2010]严格次小生成树 P4180 题意 求出一个无向联通图的严格次小生成树.严格次小生成树的定义为边权和大于最小生成树的边权和但不存在另一棵生成树的边权和在最小生成树和严格次 ...

  8. 【搜索】单词方阵 luogu-1101

    题目描述 给一n×n的字母方阵,内可能蕴含多个"yizhong"单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间 ...

  9. javascript里面的document.getElementById

    一.getElementById:获取对 ID 标签属性为指定值的第一个对象的引用,它有 value 和 length 等属性 1.获取当前页面的值input标签值:var attr1=documen ...

  10. LUSE: 无监督数据预训练短文本编码模型

    LUSE: 无监督数据预训练短文本编码模型 1 前言 本博文本应写之前立的Flag:基于加密技术编译一个自己的Python解释器,经过半个多月尝试已经成功,但考虑到安全性问题就不公开了,有兴趣的朋友私 ...