Shell脚本函数应用

2023-11-16

记录:429

场景:Shell脚本函数应用,定义函数,函数调用,函数传参。

版本:CentOS Linux release 7.9.2009。

1.普通函数

示例普通函数是没有入参和返回值。

1.1脚本

脚本名称:b2023051701.sh

脚本内容:

#!/bin/bash

#1.定义函数-带function关键字
function f1(){
    for city in "Hangzhou" "Suzhou" "Shanghai"
    do 
        echo "城市名称: ${city}"
    done
}

#2.定义函数-不带function关键字
f2(){
    for province in 'Zhejiang' 'Jiangsu'
    do 
        echo "省名称: ${province}"
    done
}

#3.调用函数
echo "f1输出结果:"
result=$(f1)
echo "${result}"
echo "f2输出结果:"
result=$(f2)
echo "${result}"

1.2执行与输出

执行命令:bash b2023051701.sh

输出结果:

f1输出结果:
城市名称: Hangzhou
城市名称: Suzhou
城市名称: Shanghai
f2输出结果:
省名称: Zhejiang
省名称: Jiangsu

2.函数使用return返回值

Shell函数的返回值只能是一个介于 0~255 之间的整数,其中只有0表示成功,其它值都表示失败。

在使用Shell函数时,使用return返回值,实际意义不是很明显。

2.1脚本

脚本名称:b2023051702.sh

脚本内容:

#!/bin/bash

#1.定义函数,使用return返回值
function f1(){
    echo '计算两数相乘结果'
    echo '输入第一个数字:'
    read firstNum
    echo '输入第二个数字:'
    read secondNum
    return $((${firstNum}*${secondNum}))
}

#2.调用函数f1
f1
echo "f1计算结果: $? "

2.2执行与输出

执行命令:bash b2023051702.sh

输出结果:

计算两数相乘结果
输入第一个数字:
33
输入第二个数字:
3
f1计算结果: 99 

3.函数使用echo输出作为返回值

函数使用echo输出作为返回值。

3.1脚本

脚本名称:b2023051703.sh

脚本内容:

#!/bin/bash

#1.定义函数,使用echo输出作为返回值
function f2(){
  firstNum=1024
  secondNum=3
  echo $((firstNum*secondNum))
}

#2.调用函数f2
result=$(f2)
echo "f2计算结果:"
echo "${result}"

3.2执行与输出

执行命令:bash b2023051703.sh

输出结果:

f2计算结果:
3072

4.函数使用全局变量作为返回值

函数使用全局变量作为返回值。

4.1脚本

脚本名称:b2023051704.sh

脚本内容:

#!/bin/bash

#1.定义函数,使用全局变量作为函数返回值
result=0 #全局变量存放函数结果
function f3(){
  firstNum=1024
  secondNum=4
  result=$((firstNum*secondNum))
}

#2.调用函数f3
f3
echo "f3计算结果:"
echo "${result}"

4.2执行与输出

执行命令:bash b2023051704.sh

输出结果:

f3计算结果:
4096

5.函数传递参数

函数使用占位符传递参数。

5.1脚本

脚本名称:b2023051705.sh

脚本内容:

#!/bin/bash

# 1.定义函数,使用占位符定义参数
function f1(){
   echo "country: $1"
   echo "Province: $2"
   echo "City: $3"
}

#2.调用函数,传递参数
result=$(f1 "China" "Zhejiang" "Hangzhou")
echo "执行结果: "
echo "${result}"

5.2执行与输出

执行命令:bash b2023051705.sh

输出结果:

执行结果: 
country: China
Province: Zhejiang
City: Hangzhou

6.函数使用return返回值

函数使用占位符传递参数。从脚本执行入口输入参数。

6.1脚本

脚本名称:b2023051706.sh

脚本内容:

#!/bin/bash

# 1.定义函数,使用占位符定义参数
function f1(){
   echo "country: $1"
   echo "Province: $2"
   echo "City: $3"
}

#2.调用函数,传递参数
v1=$1
v2=$2
v3=$3
result=$(f1 ${v1} ${v2} ${v3})
echo "执行结果: "
echo "${result}"

6.2执行与输出

执行命令:bash b2023051706.sh 中国 浙江 杭州

输出结果:

执行结果: 
country: 中国
Province: 浙江
City: 杭州

以上,感谢。

2023年5月17日

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell脚本函数应用 的相关文章

  • Linux系统中运行.sh文件的几种方法

    在Linux系统中执行 sh文件的几种方法 1 cd到 sh文件所在的目录 然后执行 xxx sh 前提 该 sh文件要有可执行的权限 chmod u x xxx sh 2 在任何路径下 输入 sh文件的绝对路径进行执行 前提 该 sh文件

随机推荐

  • 统计代码耗时

    二 常规方法 2 1 时间差统计 这种方式是最简单的方法 记录下开始时间 再记录下结束时间 计算时间差即可 public class TimeDiffTest public static void main String args thro
  • 安鸾之中间件系列

    声明 文中所涉及的技术 思路和工具仅供以安全为目的的学习交流使用 任何人不得将其用于非法用途以及盈利等目的 否则后果自行承担 本文转发于涂寐 s Blogs https 0xtlu github io 0x00 tomcat8弱口令 0o0
  • upx3.94手动脱壳

    工具 吾爱破解论坛Ollydbg ImportREConstructor upx3 94下载地址 https github com upx upx releases download v3 94 upx394w zip 环境 XP 还是XP
  • 换盘符cd的用法

    如果是在本盘内切换文件夹 直接使用cd 后面跟地址即可 如果是跨区切换地址 cd 后面就需要跟 d 斜杠d d就代表着跨分区切换地址 cd d d C ProgramData Anaconda3 Scripts gt cd d d d gt
  • linux之查看端口占用

    第一章 linux之帮助命令 第二章 linux命令行快捷键 第三章 linux之防火墙 第四章 linux之服务开机自启 第五章 linux之关机与重启 第六章 linux之环境变量 第七章 linux之目录操作命令 第八章 linux之
  • esp8266与stm32、手机通讯(原子云)——hal库(有代码)

    本文所讲 正点原子的wifi模块esp8266与正点原子开发板战舰V3 stm32f103zet6 及手机app通讯 esp8266分为三种工作模式 STA 8266连接到网络比如wifi 手机热点等 AP 8266作为热点 由手机连接到8
  • 规则引擎Drools使用 第二篇Drools规则引擎介绍

    Drools规则引擎介绍 drools是一款由JBoss组织提供的基于Java语言开发的开源规则引擎 可以将复杂且多变的业务规则从硬编码中解放出来 以规则脚本的形式存放在文件或特定的存储介质中 例如存放在数据库中 使得业务规则的变更不需要修
  • Idea自带的http client工具使用攻略

    平时都是用postman来调接口 有时候也会用到swagger 用swagger还可以 直接在浏览器上开个页面即可 但是postman就不行了 需要单独的运行 个人感觉postman还是比较占内存的 最近和一个其他组同事联调 发现他们使用的
  • python跳出for循环

    一 问题描述 在二维数组的遍历中 我们经常使用双层for循环 在某些时候 我们并不需要遍历整个二维数组 当条件满足时就应该终止for循环 但是 直接在内层循环中break并不会让外层循环也终止 二 解决方案 使用for else 语法解决
  • STM32的烧录和Hex/bin烧录文件解析、烧录文件是被如何存储到MCU中的?

    什么是hex文件 以 hex为后缀的文件我们称之为HEX文件 hex是intel规定的标准 hex的全称是Intel HEX 此类文件通常用于传输将被存于ROM或EEPROM中的程序和数据 是由一行行符合Intel HEX文件格式的文本所构
  • OpenWRT中的按键和灯的GPIO控制实现

    原文地址 点击打开链接 基于BarrierBreaker版本 基于AR9331 AP121 Demo单板 来进行描述 1 灯 A 在mach ap121 c中 定义了灯所对应的GPIO定义 define AP121 GPIO LED WLA
  • 详解以太坊的工作原理

    这篇文章主要讲解以太坊的基本原理 对技术感兴趣的朋友可以看看 翻译作者 许莉 原文地址 How does Ethereum work anyway 简介 不管你们知不知道以太坊 Ethereum blockchain 是什么 但是你们大概都
  • [机器学习入门笔记] 3. 监督学习单模型部分

    文章目录 前言 1 机器学习预备知识 1 1 关键术语与任务类型 1 2 机器学习三要素 1 3 机器学习的核心 1 4 机器学习流程 第 2 章 线性回归 2 1 线性回归的原理推导 2 2 线性回归的代码实现 2 2 1 基于Numpy
  • 网站反爬虫requests获取不到数据怎么办?

    import requests import re content requests get https blog csdn net seanyang type blog headers content decode 想通过requests
  • HackerRank Triangle Quest 2

    给你一个正整数n 例如n 5 则输出 1 121 12321 1234321 123454321 思路 这就是1 11 111 1111 的平方 题目不让用字符串做 或者代码不能超过一行见代码 for i in range 1 int in
  • JSON与JAVA数据的相互转换

    先做个记号 JSON与JAVA数据的相互转换
  • MySQL中的事务

    系列文章目录 MySQL常见的几种约束 MySQL中的函数 文章目录 系列文章目录 前言 一 事务及其特征 1 事务的概念 2 事务的特性 1 原子性 2 一致性 3 隔离性 4 持久性 二 事务并发问题 1 脏读 Dirty read 2
  • html.4

    一 表格的结构标签 可以确定表格在浏览器中的位置 htead 代表表格的头部 tbody 代表表格的主体 tfoot 代表表格的尾部 shift alt 鼠标 选中没以后的相同位置
  • c++ char数组转string

    代码 char数组的路径转string的路径 void charArrayPath2string char char array path MAX PATH std string string path std stringstream s
  • Shell脚本函数应用

    记录 429 场景 Shell脚本函数应用 定义函数 函数调用 函数传参 版本 CentOS Linux release 7 9 2009 1 普通函数 示例普通函数是没有入参和返回值 1 1脚本 脚本名称 b2023051701 sh 脚