这次我们回顾一下函数的定义,在此之前,如我们学习结构化编程一样,任何语言都脱离不了某种范式,我们先从这些范式入手。首先是条件判断。
具体的结构是:
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脚本编程的理解的人。该笔记包含了Shell脚本的基础知识、常用命令和技巧,以及实际的编程示例和案例。无论您是初学者还是有...
总的来说,这份“Linux Shell个人学习笔记”涵盖了从基础命令到高级脚本编程的广泛内容,适合想要提升Linux操作技能或准备系统管理员考试的读者。通过深入学习和实践,你可以成为一个熟练的Linux用户,甚至成为一名...
shell脚本编程学习笔记汇总 本文档总结了 Linux shell 脚本编程的学习笔记,涵盖了 shell 脚本的定义、编写、权限、存放位置、函数、变量、IF 控制语句、命令退出状态等知识点。 一、shell脚本的定义 shell 脚本是...
Linux服务器Shell编程是IT行业中非常基础且重要的技能,尤其对于系统管理员和自动化工程师而言。Shell脚本编程允许用户创建自定义的命令行工具,实现自动化任务处理,提高工作效率。在这个学习笔记中,我们将深入...
这份学习笔记将深入探讨Shell编程的基础,包括文件权限与安全,这是理解Linux和Unix系统管理的关键。 首先,我们关注文件权限。在Linux和Unix中,每个文件和目录都有三个基本的权限:读(r)、写(w)和执行(x)。...
Linux服务器Shell编程是系统管理员和开发者在日常工作中必备的技能之一。Shell脚本是一种通过Shell解释器执行的文本文件,可以包含一系列命令,用于自动化任务和管理系统。在Linux操作系统中,常用的Shell包括bash、...
Linux与Unix Shell编程指南读书笔记提供了深入理解和熟练掌握Shell脚本编写技巧的宝贵资源。Shell是Linux和Unix操作系统中的命令解释器,它不仅用于交互式地执行命令,还能编写自动化任务的脚本,极大地提高了系统...
《LINUX与UNIX SHELL编程指南》是一本深入探讨Linux和UNIX系统中Shell脚本编程技术的书籍。这本书旨在帮助读者理解和掌握Shell编程的核心概念,从而能够编写出高效、实用的自动化脚本,提高日常系统管理和任务执行的...
此外,Shell编程中还可以创建函数库,以便在多个脚本中重复使用这些函数。一个简单的函数库可能会包含初始化函数、日志记录函数等,以便统一管理脚本的执行和日志记录。例如,可以创建一个自定义的常用函数库`...
通过深入学习"Unix Shell编程第三版笔记",你将能够编写出高效的自动化脚本,提高工作效率,解决日常的系统管理和开发问题。同时,对Unix Shell的熟练掌握也是成为高级系统管理员或全栈开发者的必备技能之一。
### Linux系统编程学习笔记 #### 一、IO **1.1 标准I/O (stdio)** - **fopen/fclose**: `fopen` 用于打开或创建一个文件,并返回一个指向该文件的 `FILE *` 类型的指针。`fclose` 用于关闭由 `FILE *` 指向的文件...
《LINUX与UNIX SHELL编程指南》是一本深入讲解Linux和Unix系统中shell编程的权威著作,对于理解和掌握shell脚本编写技巧具有重要的指导意义。本文将基于书中的主要章节和学习笔记,详细阐述shell、find命令以及后台...
《LINUX与UNIX SHELL编程指南》读书笔记.pdf可能包含了作者对原书的解读和实践经验。笔记中可能会强调错误处理、调试技巧,以及如何利用awk、sed等文本处理工具增强Shell脚本的功能。此外,文件和目录的权限管理、...
根据提供的文件信息,我们可以推断出这是一份关于Linux编程学习笔记的PDF资料。下面将对这份资料可能涉及的关键知识点进行详细的阐述。 ### Linux编程基础知识 #### 1. Linux操作系统概述 - **定义与特点**:Linux...
《LINUX与UNIX SHELL编程指南》是一本深入解析LINUX和UNIX系统中shell编程的...通过阅读《LINUX与UNIX SHELL编程指南》二次发布版的PDF文档,你将踏上shell编程的探索之旅,领略LINUX和UNIX世界中这个强大工具的魅力。
在深入探讨《LINUX与UNIX SHELL编程指南》的读书笔记之前,让我们首先理解Linux和Unix Shell编程的基础概念。Linux是一种自由开源的操作系统,它的内核由林纳斯·托瓦兹开发,而Unix则是一个历史悠久的多用户、多...
总之,“shell编程笔记.pdf”很可能包含了以上所有这些内容,是一个全面学习Shell编程的宝贵资源。通过深入学习和实践,你可以掌握Shell编程技能,从而更高效地管理和自动化你的Linux系统任务。
这篇“自学习,Linux命令行与Shell脚本编程笔记”旨在帮助初学者掌握这两个核心技能。 首先,Linux命令行是操作系统与用户交互的主要方式之一,通过输入简单的指令,用户可以执行各种任务,如文件管理、系统监控、...