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. iPhone X适配方案

    iPhone X适配方案 https://github.com/Wscats/iPhone-X 绝对长度单位 英寸 厘米 毫米 磅 pc inch cm mm pt pica 相对长度单位 是网页设计 ...

  2. 安卓源码默认开启USB调试

    找到\frameworks\base\services\usb\java\com\android\server\usb\UsbDeviceManager.java下的 Settings.Global. ...

  3. 三分钟掌握共享内存 & Actor并发模型

    吃点好的,很有必要.今天介绍常见的两种并发模型: 共享内存&Actor 共享内存 面向对象编程中,万物都是对象,数据+行为=对象: 多核时代,可并行多个线程,但是受限于资源对象,线程之间存在对 ...

  4. 夏壹队——nabcd

    我们团队项目名称是TD校园通,无课表查询你作为主要功能,是一个亮眼的功能. 我们的无课表查询功能主要解决大家平时上自习还要到教学楼拍照,教室课程情况也有断更的时候,而这个功能就解决大家的这个功能,能够 ...

  5. [iconfont_dart]帮你快速生成Icon,再也不用手动写Icon方法

    iconfont_dart iconfont to dart.Icon can be implemented by calling iconfont classname. iconfont转dart. ...

  6. deepin使用synergy鼠标越界软件实现和另一台windows系统共享鼠标

    1,搜索synergy就能找到很多安装和配置的博客文章. 2,我遇到的问题: 1,在linux(deepin)上安装1.8.8版本报出找不到依赖libssl.so.1.0.0的错误,导致无法成功启动软 ...

  7. Leetcode12. 整数转罗马数字Leetcode18. 四数之和

    > 简洁易懂讲清原理,讲不清你来打我~ 输入整数,输出对应的罗马字符串![在这里插入图片描述](https://img-blog.csdnimg.cn/54b001c62a0d4d348c962 ...

  8. 在线体验 Windows 11「GitHub 热点速览 v.21.30」

    作者:HelloGitHub-小鱼干 有什么比无需安装系统,检测硬件兼容度,只要打开一个浏览器,输入某个神秘的地址回车,即可体验 Windows 11 更棒的呢?windows11 就是这么一个小工具 ...

  9. Discuz! X3.4 邮件设置 使用qq邮箱发邮件

    1. 在qq邮箱->设置中,获取授权码 2. 在discuz后台配置基础信息 3.  在服务器的防火墙中添加规则,允许访问465端口

  10. P4774-屠龙勇士-扩展中国剩余定理

    屠龙勇士 很久很久以前,巨龙突然出现,带来了灾难带走公主又消失不见.王国十分危险,世间谁最勇敢,一位英雄出现-- 学习于该大佬博客 那么你就是这位英雄,不过不同的是,你面对的是一群巨龙,虽然巨龙都不会 ...