`
1025250620
  • 浏览: 230420 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux Shell编程学习笔记(二)函数

 
阅读更多

这次我们回顾一下函数的定义,在此之前,如我们学习结构化编程一样,任何语言都脱离不了某种范式,我们先从这些范式入手。首先是条件判断。

具体的结构是:

if condition;

then command;

elif  condition;

then commands;

else

    command;

fi

condition的编写可以通过test命令或者是[]算子。比如test $m -eq 0 或者是[ $m -eq 0 ]

接着是迭代:迭代的集合类数据以逗号或者是空格分割

data="data1 data2"

迭代的for语句是

for item in $data

do

    statements;

done;

在data中默认的分隔符号受IFS变量控制控制例如,你如果要指定:为你的分割符的话只需要定义变量IFS=“:”,这个非常有用,比如我现在要实现一个功能,要打印所有的用户所用shell,配置文件在/etc/passwd,可以执行下面的脚本:

  1 echo "-----------------"
  2 for line in `cat /etc/passwd`
  3 do 
  4   #echo line=$line
  5   count=0;
  6    IFS=":"
  7   for item in $line
  8   do
  9     if [ $count -eq 6 ];
 10         then echo $item
 11     fi 
 12     let count+=1;
 13   done
 14 done
当然实现方法多种多样,你可以有很多方案选择。

下面轮到非常重要的知识点:函数。

shell在函数定义的时候使用function来定义,而调用函数的时候直接使用函数名

我们来看一下:

funtion testfun(){} 或者是 testfun(){}

这个是函数的定义,而在调用函数的时候我们直接使用testfun就可以了,不需要加上括号。其实我很喜欢这种设计,对于函数来说无非就是要参数和函数名,我为何要多此一举写括号浪费我时间呢~

函数有三个东西是非常关键的,名字,参数,还有返回值,这些东西决定了一个函数的函数签名

通常情况下函数的返回值为0,属于正常值.而函数的参数,可以通过函数的$0123来获取

那么我是否可以指定参数名呢?~其实是不行的~至少我现在测试出来是不行的.当你需要打印所有的参数的时候可以选择$*或者$@.

我们说我们采用定义变量的方式是无法被子进程所继承的,所以我们采用了export的方式来传递环境变量,那么函数是否可以呢?当然也是可以的我们在函数名前面加入export参数.我尝试了一下export testfun

结果发现子进程中根本没有这个方法。这是因为它会采用变量的方式来传递这种东西,因此~当你要传递一个方法的时候,要在export后面加上参数-f代表这是一个function.

我们说函数有三要素,函数名,参数,和返回值。我们要怎么获得返回值呢?shell里面定义了一个$?来存储返回值,它的功能很像寄存器AX。我们可以通过返回值来确定程序执行的方向。那么$?到底是函数的返回值还是程序的返回值呢?其实这两个并不矛盾,我们知道程序本身的入口也是main函数,当然我们这么说并不准确,我只是想说明程序的入口本质上也是函数,所以如果说$?是函数的返回值的话自然也是程序的返回值。

 

 

 

 

分享到:
评论

相关推荐

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    Linux是开源的操作系统,它的命令行界面,尤其是Shell编程...因此,无论你是技术小白还是希望进一步提升,这份“Linux零基础学习笔记 Shell编程-菜鸟入门”都会是你宝贵的资源。祝你在学习的道路上越走越远,不断进步!

    Linux Shell编程笔记

    描述:这是一份综合的Linux Shell编程笔记,适用于想要学习或加强对Linux操作系统下Shell脚本编程的理解的人。该笔记包含了Shell脚本的基础知识、常用命令和技巧,以及实际的编程示例和案例。无论您是初学者还是有...

    linux shell个人学习笔记,绝对极品

    总的来说,这份“Linux Shell个人学习笔记”涵盖了从基础命令到高级脚本编程的广泛内容,适合想要提升Linux操作技能或准备系统管理员考试的读者。通过深入学习和实践,你可以成为一个熟练的Linux用户,甚至成为一名...

    shell脚本编程学习笔记汇总

    shell脚本编程学习笔记汇总 本文档总结了 Linux shell 脚本编程的学习笔记,涵盖了 shell 脚本的定义、编写、权限、存放位置、函数、变量、IF 控制语句、命令退出状态等知识点。 一、shell脚本的定义 shell 脚本是...

    Linux服务器Shell编程学习笔记linux操作系统 电脑资料.docx

    Linux服务器Shell编程是IT行业中非常基础且重要的技能,尤其对于系统管理员和自动化工程师而言。Shell脚本编程允许用户创建自定义的命令行工具,实现自动化任务处理,提高工作效率。在这个学习笔记中,我们将深入...

    LINUX与UNIX_Shell编程指南V1.0_学习笔记.docx

    这份学习笔记将深入探讨Shell编程的基础,包括文件权限与安全,这是理解Linux和Unix系统管理的关键。 首先,我们关注文件权限。在Linux和Unix中,每个文件和目录都有三个基本的权限:读(r)、写(w)和执行(x)。...

    Linux服务器Shell编程学习笔记linux操作系统 电脑资料.pdf

    Linux服务器Shell编程是系统管理员和开发者在日常工作中必备的技能之一。Shell脚本是一种通过Shell解释器执行的文本文件,可以包含一系列命令,用于自动化任务和管理系统。在Linux操作系统中,常用的Shell包括bash、...

    linux与unix shell编程指南读书笔记.rar

    Linux与Unix Shell编程指南读书笔记提供了深入理解和熟练掌握Shell脚本编写技巧的宝贵资源。Shell是Linux和Unix操作系统中的命令解释器,它不仅用于交互式地执行命令,还能编写自动化任务的脚本,极大地提高了系统...

    《LINUX与UNIX SHELL编程指南》读书笔记

    《LINUX与UNIX SHELL编程指南》是一本深入探讨Linux和UNIX系统中Shell脚本编程技术的书籍。这本书旨在帮助读者理解和掌握Shell编程的核心概念,从而能够编写出高效、实用的自动化脚本,提高日常系统管理和任务执行的...

    linux运维学习笔记:Shell函数.pdf

    此外,Shell编程中还可以创建函数库,以便在多个脚本中重复使用这些函数。一个简单的函数库可能会包含初始化函数、日志记录函数等,以便统一管理脚本的执行和日志记录。例如,可以创建一个自定义的常用函数库`...

    unix shell编程第三版笔记

    通过深入学习"Unix Shell编程第三版笔记",你将能够编写出高效的自动化脚本,提高工作效率,解决日常的系统管理和开发问题。同时,对Unix Shell的熟练掌握也是成为高级系统管理员或全栈开发者的必备技能之一。

    Linux系统编程学习笔记

    ### Linux系统编程学习笔记 #### 一、IO **1.1 标准I/O (stdio)** - **fopen/fclose**: `fopen` 用于打开或创建一个文件,并返回一个指向该文件的 `FILE *` 类型的指针。`fclose` 用于关闭由 `FILE *` 指向的文件...

    《LINUX与UNIX SHELL编程指南》笔记

    《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和Unix系统中shell编程的权威著作,对于理解和掌握shell脚本编写技巧具有重要的指导意义。本文将基于书中的主要章节和学习笔记,详细阐述shell、find命令以及后台...

    Unix&Linux shell编程指南

    《LINUX与UNIX SHELL编程指南》读书笔记.pdf可能包含了作者对原书的解读和实践经验。笔记中可能会强调错误处理、调试技巧,以及如何利用awk、sed等文本处理工具增强Shell脚本的功能。此外,文件和目录的权限管理、...

    linux编程学习笔记PDF资料下载.txt

    根据提供的文件信息,我们可以推断出这是一份关于Linux编程学习笔记的PDF资料。下面将对这份资料可能涉及的关键知识点进行详细的阐述。 ### Linux编程基础知识 #### 1. Linux操作系统概述 - **定义与特点**:Linux...

    《LINUX与UNIX SHELL编程指南》读书笔记-二次发布版

    《LINUX与UNIX SHELL编程指南》是一本深入解析LINUX和UNIX系统中shell编程的...通过阅读《LINUX与UNIX SHELL编程指南》二次发布版的PDF文档,你将踏上shell编程的探索之旅,领略LINUX和UNIX世界中这个强大工具的魅力。

    LINUX与UNIX SHELL编程指南 读书笔记

    在深入探讨《LINUX与UNIX SHELL编程指南》的读书笔记之前,让我们首先理解Linux和Unix Shell编程的基础概念。Linux是一种自由开源的操作系统,它的内核由林纳斯·托瓦兹开发,而Unix则是一个历史悠久的多用户、多...

    shell编程笔记.zip_programy5v_shell_shell编程

    总之,“shell编程笔记.pdf”很可能包含了以上所有这些内容,是一个全面学习Shell编程的宝贵资源。通过深入学习和实践,你可以掌握Shell编程技能,从而更高效地管理和自动化你的Linux系统任务。

    自学习,Linux命令行与Shell脚本编程笔记!word版本

    这篇“自学习,Linux命令行与Shell脚本编程笔记”旨在帮助初学者掌握这两个核心技能。 首先,Linux命令行是操作系统与用户交互的主要方式之一,通过输入简单的指令,用户可以执行各种任务,如文件管理、系统监控、...

Global site tag (gtag.js) - Google Analytics