函数

函数就是把一段代码整理到一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可。

格式:function f_name(){

command

}

函数必须放在最前面,函数名可以自己定义。

案例一:

[root@congji shell]# vim fun.sh

#!/bin/bash

function inp() {

echo $1 $2 $3 $10 ${10} ${11} $0 $# [$*]

}

inp 1 2 3 4 5 6 7 8 9 34 55

[root@congji shell]# sh fun.sh

1 2 3 10 34 55 fun.sh 11 [1 2 3 4 5 6 7 8 9 34 55]

注意$10并不能打印出第10个函数,当n>=10时,用{10}来获取函数。$0表示脚本名字。$#表示多少个函数。

案例二:

[root@congji shell]# vim fun1.sh

#/bin/bash

sum() {

s=$[$1+$2]

echo $s

}

sum 22 2

[root@congji shell]# sh fun1.sh

24

案例三:

写一个脚本,输入网卡号则显示该往卡上的ip。

#/bin/bash

ip() {

ifconfig |grep -A1 "$1" |tail -1 |awk '{print $2}'

}

read -p "please input the eth name: " e

myip=`ip $e`

echo "$e address is $myip"

运行结果:

[root@congji shell]# sh fun2.sh

please input the eth name: ens33

ens33 address is 192.168.52.50

Shell中的数组


定义数组:

[root@congji ~]# a=(1 2 3 4 5 6)

查看数组全部值:

[root@congji ~]# echo ${a[@]}

1 2 3 4 5 6

[root@congji ~]# echo ${a[*]}

1 2 3 4 5 6

查看数组单一的值:(从零开始)

[root@congji ~]# echo ${a[0]}

1

[root@congji ~]# echo ${a[1]}

2

[root@congji ~]# echo ${a[2]}

3

给数组赋值或更改:

[root@congji ~]# a[2]=aaa

[root@congji ~]# echo ${a[*]}

1 2 aaa 4 5 6

数组的删除:

删除数组里的一个值:

[root@congji ~]# unset a[1]

[root@congji ~]# echo ${a[*]}

1 aaa 4 5 6

[root@congji ~]# unset a[0]

[root@congji ~]# echo ${a[*]}

aaa 4 5 6

删除整个数组

[root@congji ~]# unset a

[root@congji ~]# echo ${a[*]}

删除笔记修改笔记

数组分片:

[root@congji ~]# echo ${b[@]}

1 2 3 4 5 6

格式:echo ${数组名称[@]:从第几个元素开始:截取几个}

从第一个元素开始,截取2个:

[root@congji ~]# echo ${b[@]:0:2}

1 2

从第二个元素开始,截取3个:

[root@congji ~]# echo ${b[@]:1:3}

2 3 4

那么倒着应该怎么截取呢:

格式:echo ${数组名称[@]:0-倒数第几个元素:截取几个}

从倒数第2个元素开始,截取2个

[root@congji ~]# echo ${b[@]:0-2:2}

5 6

数组替换

临时替换:

[root@congji ~]# echo ${b[@]/5/6}

1 2 3 4 6 6

[root@congji ~]# echo ${b[@]}

1 2 3 4 5 6

永久替换:

[root@congji ~]# b=(${b[@]/5/6})

[root@congji ~]# echo ${b[@]}

1 2 3 4 6 6

本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/2070411,如需转载请自行联系原作者

Shell脚本(函数,shell中的数组)相关推荐

  1. 69:shell脚本介绍 | shell脚本结构 | 执行data命令用法 | shell脚本中变量

    2019独角兽企业重金招聘Python工程师标准>>> 1.shell脚本介绍: shell是一种脚本语言和传统的开发语言相比,会比较简单: shell有自己语法,可以支持逻辑判断. ...

  2. Linux的shell脚本函数教程

    Linux的shell脚本函数教程 一.shell介绍 二.shell函数的介绍 三.函数的定义 四.shell中函数使用示例 一.shell介绍 二.shell函数的介绍 三.函数的定义 四.she ...

  3. Shell脚本函数(函数传参、递归、创建库)

    Shell脚本函数 一.Shell函数 1.Shell函数定义 2.函数的返回值 return echo 二.函数传参 三.函数变量的作用范围 四.递归 1.阶乘 2.递归目录 五.创建库 一.She ...

  4. Shell脚本函数应用

    记录:429 场景:Shell脚本函数应用,定义函数,函数调用,函数传参. 版本:CentOS Linux release 7.9.2009. 1.普通函数 示例普通函数是没有入参和返回值. 1.1脚 ...

  5. linux shell脚本 定义变量,Shell脚本应用 - 编制shell脚本、shell变量

    随着Linux系统在企业中的应用越来越多,服务器的自动化管理也变得越来越重要.在Linux服务器的自动化维护工作中,除了计划任务的设置以外,Shell脚本的应用也是非常重要的一部分.作为Linux系统 ...

  6. Linux中Shell脚本函数库的笔记

    Shell函数库的作用:函数库就是对一些十分常用的功能,独立出来,然后集中存放在一些独立的文件中,这些文件可以理解为函数库.函数库本质上也是函数,一般情况下函数库的函数建议使用下划线开头. 示例: c ...

  7. Shell脚本——函数、中断及退出、字符串处理

    Shell函数 函数:在shell脚本中,将一些需要重复使用的操作,定义为公共的语句块,即可称为函数.通过使用函数,可以使脚本代码更加简洁,增强易读性,提高shell脚本的执行效率. 1)函数的定义方 ...

  8. 【shell】shell脚本实战-shell脚本函数详解

    文章目录 前言 shell函数的定义 函数的优势 shell 函数的调用 实战案例 总结 前言 Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接 ...

  9. Shell脚本函数简介及运用

    目录 一.函数的作用 二.定义函数 三.调用函数 1.在脚本中调用函数 2.在函数中调用函数 四.函数传参 五.函数的返回值 六.函数的递归 七.函数及其变量的作用范围 八.外部脚本调用函数 一.函数 ...

  10. shell脚本函数声明,调用

    shell脚本中函数的声明, 调用,处理结果的返回等问题. 1. 函数声明 1.1 函数需要先声明后调用, 声明和调用有顺序要求. 1.2 shell中的函数返回值只能是数字, 返回0表示执行成功, ...

最新文章

  1. IIS 配置Http重定向到Https
  2. 在幕后看看Swift中的Map,Filter和Reduce的实现
  3. 互联网1分钟 | 0914
  4. QT的QFileSystemModel类的使用
  5. 颠覆传统,仅银行卡大小充电宝,10000mAh可登机,手机党出门随身必备!
  6. rpm deb命令集合
  7. java spring 连接池配置_Spring中常用的连接池配置
  8. JS实现页面保存为图片
  9. VS2015静态库的使用(上)
  10. SSM项目源码基于SSM实现的小说网站含前后台
  11. hadoop进阶---hadoop性能优化(一)---hdfs空间不足的管理优化
  12. 桥本分数式(蓝桥杯)
  13. SD卡与TF卡的区别是什么?哪个更耐用?
  14. 基于压缩传感的脉冲GPR成像技术研究(硕士学位论文初稿20111230)
  15. matlab设置非平坦结构元,基于多尺度多结构元的数学形态学边缘检测
  16. E - Competitive Seagulls(博弈)
  17. windows下创建进程,CreateProcess()详解及用法
  18. C语言 给定一个字符串,统计‘a’的个数
  19. mesh 协调器 路由器_双模网络协调器、双模路由器和双模mesh组网系统的制作方法...
  20. 微信小程序真机调试无法连接websocket解决方案

热门文章

  1. 21天 Jenkins打卡-Day1 环境准备
  2. 4创建ui显示不出来_4道小学生经典推理题,家长们一道也做不出来,太烧脑了...
  3. 黄金三月,技术自检 | 作为测试人必备的10项 Linux 技能
  4. 为什么这么多应届生要进入互联网行业?
  5. java指定jre_java 运行应用程序,指定jre版本
  6. java 内部类调用_Java内部类使用总结
  7. 简单的签到代码_签到功能,用 MySQL 还是 Redis ?
  8. c语言spi测试代码,C语言程序SPI
  9. 如何安装boost库
  10. 5复数与复变函数(五)