1. 函数的定义
方法1:
function_name () {
statement
} 方法2:
function function_name () {
statement
} --先定义后使用 例:模拟用函数写一个服务启动,关闭,重启的脚本 (要求有start,stop,restart,status) --以sshd服务为例写的服务脚本
#!/bin/bash start() {
pid=`pidof sshd` if [ -z $pid ];then
/usr/sbin/sshd
echo "正在启动 sshd: [确定]"
else
echo "服务sshd(pid $pid)已存在"
fi
} function stop() {
pid=`pidof sshd` if [ ! -z $pid ];then
echo "服务sshd 已停"
else
killall sshd &> /dev/null
echo "停止 sshd: [确定]"
fi } restart() {
pid=`pidof sshd` if [ -z $pid ]; then
echo "停止 sshd:[失败]"
/usr/sbin/sshd
echo "正在启动 sshd:[确定]"
else
echo "停止 sshd:[确定]"
/usr/sbin/sshd
echo "正在启动 sshd:[确定]"
fi } status(){
pid=`pidof sshd`
if [ -z $pid ];then
echo "服务sshd 已停"
else
echo "服务sshd (pid $pid)正在运行..."
fi } case "$1" in
start )
#启动sshd服务
start
;;
stop )
# 停止sshd
stop
;;
restart )
restart
;;
status )
status
;;
* )
echo "用法: /root/ssh2.sh {start|stop|restart|status}"
esac 2. 函数的参数
fun() {
echo $1 --接收参数,$1=arg1,$2=arg2,$0是文件名
echo $2
}
fun arg1 arg2 ... --传参
实例: #!/bin/bash add() {
echo $1+$2 | bc
}
sub() {
echo $1-$2 | bc
} # 使用$1来接受add或sub,$2$3分别是2个数字
case "$1" in
add )
add $2 $3
;;
sub )
sub $2 $3
;;
* )
exit
esac 3. 函数的返回值
fun(){
return value --使用return返回一个值(数字,只能是整数)
} fun --调用函数
echo $? --函数的返回值 #!/bin/sh
#函数传参
add() {
return $[$1+$2]
}
sub() {
return $[$1-$2]
} case "$1" in
add )
add $2 $3
echo "$2+$3的和是$?"
;;
sub )
sub $2 $3
echo "$2-$3的差是$?"
;;
* )
echo "usage: sh $0 arg1 arg2 arg3"
esac
------------------------ 使用read输入一个整数,把数字中的所有数字转换成英文单词
如:2345 转换为 two three four five 提示:需要计算输入的整数的长度,然后进行循环,截取整数中的单一字符(cut -c),对截取的单一字符
#!/bin/bash read -p "请输入一个整数:" num length=`echo ${#num}` #${#string} 返回$string的长度 translate() {
case "$1" in
0 )
echo -n " zero "
;;
1 )
echo -n " one "
;;
2 )
echo -n " two "
;;
3 )
echo -n " three "
;;
4 )
echo -n " four "
;;
5 )
echo -n " five "
;;
6 )
echo -n " six "
;;
7 )
echo -n " seven "
;;
8 )
echo -n " eight "
;;
9 )
echo -n " nine "
esac
} for (( i=1; i<=$length; i++ ))
do
char=`echo $num |cut -c$i`
translate $char
done
echo 三. 数组 数组的定义: # abc=( 1 2 a b "sfsda sf sfdsa" ) --定义一个数组,可以是数字,字母,或者字符串 # echo ${abc[0]} --数组的下标是0不是1
1
# echo ${abc[1]}
2
# echo ${abc[2]}
a
# echo ${abc[3]}
b
# echo ${abc[4]}
sfsda sf sfdsa --查看数组的全部值
# echo ${abc[*]}
1 2 a b sfsda sf sfdsa
# echo ${abc[@]}
1 2 a b sfsda sf sfdsa --查看数组的个数
# echo ${#abc[*]}
5 # array3=(`ifconfig eth0|grep Mask`)
# echo ${array3[0]}
inet
# echo ${array3[1]}
addr:10.1.1.35
# echo ${array3[2]}
Bcast:10.1.1.255
# echo ${array3[3]}
Mask:255.255.255.0 echo ${array[2]} | cut -d: -f2

  

linux函数与数组的更多相关文章

  1. Linux C 程序 函数,数组,指针,gdb调试器(SEVEN)

    函数,数组,指针,gdb调试器 1.函数定义 如果明确指定返回类型,默认为int 参数传递:实参对形参的参数传递是单向的,实参只是把自己的值赋给形参.                      形参的 ...

  2. typedef 函数指针 数组 std::function

    1.整型指针 typedef int* PINT;或typedef int *PINT; 2.结构体 typedef struct { double data;}DATA,  *PDATA;  //D ...

  3. awk(流程控制、内置变量、内置函数、数组)

    摘自:http://bbs.51cto.com/thread-883948-1-1.html awk(流程控制.内置变量.内置函数.数组) ... 参考其他的资料,给大家看看.一.awk流程控制语句 ...

  4. PHP使用in_array函数检查数组中是否存在某个值

    PHP使用 in_array() 函数检查数组中是否存在某个值,如果存在则返回 TRUE ,否则返回 FALSE. bool in_array( mixed needle, array array [ ...

  5. C++基础——函数指针 函数指针数组

    ==================================声明================================== 本文版权归作者所有. 本文原创,转载必须在正文中显要地注明 ...

  6. C++程序设计(关于函数中数组传递的一点心得)

    题目: 10个学生考完期末考试评卷完成后,老师需要划出及格线,要求如下: (1) 及格线是10的倍数: (2) 保证至少有60%的学生及格: (3) 如果所有的学生都高于60分,则及格线为60分:   ...

  7. C#委托与C语言函数指针及函数指针数组

    C#委托与C语言函数指针及函数指针数组 在使用C#时总会为委托而感到疑惑,但现在总新温习了一遍C语言后,才真正理解的委托. 其实委托就类似于C/C++里的函数指针,在函数传参时传递的是函数指针,在调用 ...

  8. PHP中使用数组指针函数操作数组示例

    数组的内部指针是数组内部的组织机制,指向一个数组中的某个元素.默认是指向数组中第一个元素通过移动或改变指针的位置,可以访问数组中的任意元素.对于数组指针的控制PHP提供了以下几个内建函数可以利用. ★ ...

  9. C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组

    #include<stdio.h> #include<stdlib.h> #include<windows.h> /* 举列子说明什么是函数指针 */ //以一个加 ...

随机推荐

  1. C++五子棋(四)——走棋原理及权值计算

    原理 计算 计算每个落子点的**"权值"**,找到权值最大的落子点 对于每个空白点,分别计算周围的八个方向 不妨以该空白点作为参照原点,以水平向右作为X轴正方向,以竖直向下为Y轴正 ...

  2. JVM垃圾回收篇

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 基础概念 GC=jvm垃圾回收,垃圾回收机制是由垃圾回收器Garbage ...

  3. python学习-Day5

    目录 今日学习内容详解 流程控制理论 程序执行流程分类: 重点小知识* 分支结构(if 语法) 单 if 分支 if 与 else 分支 if 与 elif 与 else 分支 if嵌套 练习 循环结 ...

  4. ucore lab5 用户进程管理 学习笔记

    近几日睡眠质量不佳,脑袋一困就没法干活,今天总算时补完了.LAB5难度比LAB4要高,想要理解所有细节时比较困难.但毕竟咱不是要真去写一个OS,所以一些个实现细节就当成黑箱略过了. 这节加上了用户进程 ...

  5. python matplotlib在mac os x 中如何显示中文,完美解决

    一. 下载相关的中文字体 simhei 文件: 下载地址 二.通过以下代码查找matplotlib的数据存放位置: import matplotlib print(matplotlib.matplot ...

  6. Java安全之SnakeYaml反序列化分析

    Java安全之SnakeYaml反序列化分析 目录 Java安全之SnakeYaml反序列化分析 写在前面 SnakeYaml简介 SnakeYaml序列化与反序列化 常用方法 序列化 反序列化 Sn ...

  7. 老生常谈系列之Aop--Spring Aop源码解析(一)

    老生常谈系列之Aop--Spring Aop源码解析(一) 前言 上一篇文章老生常谈系列之Aop--Spring Aop原理浅析大概阐述了动态代理的相关知识,并且最后的图给了一个Spring Aop实 ...

  8. EF Core 的关联查询

    0 前言 本文会列举出 EF Core 关联查询的方法: 在第一.二.三节中,介绍的是 EF Core 的基本能力,在实体中配置好关系,即可使用,且其使用方式,与编程思维吻合,是本文推荐的方式. 第四 ...

  9. 【算法】选择排序(Selection Sort)(二)

    选择排序(Selection Sort) 选择排序(Selection-sort)是一种简单直观的排序算法.它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余 ...

  10. SpringBoot进阶教程(七十四)整合ELK

    在上一篇文章<SpringBoot进阶教程(七十三)整合elasticsearch >,已经详细介绍了关于elasticsearch的安装与使用,现在主要来看看关于ELK的定义.安装及使用 ...