shell学习小总结----本章小结

本章小结

变量在正是一点的程序里是必备项目.shell的变量会保留字符串值,而大量的运算符可以在${var...}里使用,让你控制变量的结果.

shell提供了许多的特殊变量(例如#?与$!),用来访问特殊信息,例如,命令退出状态.shell也有许多预定义的特殊变量,例如PS1----用来设置主要提示符.位置参数与$*和[email protected]这类的特殊变量,则用来在脚本(或函数)被引用是,让用户可以访问被使用的参数.env,export以及readonly则用来控制环境.

$((...))的算术展开提供完整的算术运算能力,且使用与C相同的运算符与优先级.

程序的退出状态是一个小的整数,可以在程序完成后,攻饮用者使用;shell脚本使用exit命令来做这件事,而shell函数则使用return命令.shell脚本可以取得在特殊变量$?内执行的最后一个命令的退出状态.

退出状态可以搭配if,while与until语句来进行流程控制,也可以与!,&&,以及||运算符搭配使用.

test命令及其别名[...],可测试文件属性和字符串与数值,在if,while以及until语句里,他也相当有用.

for提供遍历整组值的的循环机制,这整组的值可以是字符串,文件名或其他等等.while与until提供比较传统的循环方式,加上break和continue提供额外的循环控制.case语句提供一个多重比较功能,类似C与C++里面的switch语句.

getopts,shift与$#提供处理命令行的工具.

最后shell函数可将相关命令组织到一起,之后再将它视为一个单独调用使用.他们有点像shell脚本,只不过他将命令存放在内存里,这样更有效率,且他们还能影响引用脚本的变量与状态.

时间: 2024-10-31 06:49:46

shell学习小总结----本章小结的相关文章

Shell学习笔记——第三章

第三章 /etc/passwd 文件包含一个所有系统用户账户组成的列表,以及一些关于每个用户的基本信息. 例rich:x:501:Rich Blum:/home/rich:/bin/bash 每个条目都有7个数据字段,例使用冒号分隔.系统使用这些字段中的数据向用户分配具体的特性.这些字段分别有 用户名:用户密码(如果密码存储在其他文件中,则为占位符):用户的系统用户ID编号:用户的系统组的ID编号:用户的全名:用户默认的主目录:用户的默认Shell目录: cd 命令 略过 列表命令(ls) 参数

第五章 shell学习之文件的排序、合并和分割

sort命令 sort [选项] [输入文件] 选项: -c 测试文件是否已经排序,如果未被排序则输出第一个未被排序的记录 -k 指定排序的域 -m 合并两个已排序的文件,合并的文件也已经排序,如sort -m a1 a2,a1的记录被有序的插入a2 -n 根据数字的大小进行排序,一般放在域号后,如-k3n -o 将输出重定向到指定文件 -r 将排序结果逆向显示 -t 改变域分割符,如-t: -u 去除结果中的重复行 sort和awk联合 例: [[email protected] tmp]#

第三章 shell学习之正则表达式

正则表达式 \<the\>:精确匹配the,不包括包含the的单词 [^b-d]:不包含b~d a\{2\}:a出现2次 a\{2,3\}:a出现2~3次 a\{2,\}:a至少出现2次 [:upper:]:大写字母(用的时候外面加一层[]表示匹配字符集合) [:lower:]:小写字母 [:digit:]:数字 [:alnum:]:大小写字母和数字 [:space:]:表示空格或tab键 [:alpha:]:大小写字母 通配 注意通配和正则表达式不同,虽然有共同的符号 ls -l *.sh

第四章 shell学习之sed命令和awk编程

sed命令 sed只是对缓冲区中原始文件的副本进行编辑,不改变源文件,所以要保存则要重定向到另一个文件 sed三种方式: 1.sed [选项] 'sed命令' 输入文件 2.sed [选项] -f sed脚本文件 输入文件 3../sed脚本文件 输入文件 其中3的sed脚本文件要以#! bin/sed -f等开头 选项: -n 不打印所有行到标准输出,默认先打印匹配的再打印所有 -e 关联多个sed命令 -f 调用sed脚本文件 定位文本: x x为指定行号 x,y 从x到y行 /patter

第六章 shell学习之变量和引用

变量 本地变量:类似于局部变量,只在当前shell进程有效 环境变量:适用于所有登录进程所产生的子进程 位置参数:用于向shell脚本传递参数,只读 变量替换和赋值 引用变量值就称为变量替换,$就为变量替换符号,如a为变量名则$a或${a}为变量值 将值赋给某个变量名就称为变量赋值,格式:variable=value或${ variable=value },如值中包含空格则必须用"" 清除变量的值: unset 变量名 设置只读变量: variable=value readonly v

《Linux内核设计与实现》第八周学习总结——第四章 进程调度

<Linux内核设计与实现>第八周学习总结——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有通过调度程序的合理调度,系统资源才能最大限度地发挥作用,多进程才会有并发行的效果. 调度程序没有太复杂的原理,最大限度地利用处理器时间的原则是只要有可以执行的进程,那么就总会有进程正在执行,但是只要系统中可运行的进程的数目比处理器的个数多,就注定某一给定时刻会有一些进程不

APUE学习笔记:第一章 UNUX基础知识

1.2 UNIX体系结构 从严格意义上,可将操作系统定义为一种软件(内核),它控制计算机硬件资源,提供程序运行环境.内核的接口被称为系统调用.公用函数库构建在系统调用接口之上,应用软件即可使用公用函数库,也可使用系统调用.shell是一种特殊的应用程序,它为运行其他应用程序提供了一个接口 从广义上,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并给予计算机以独有的特性(软件包括系统实用程序,应用软件,shell以及公用函数库等) 1.3  shell shell是一个命令行解

APUE学习笔记:第二章 UNIX标准化及实现

2.2UNIX标准化 2.2.1 ISO C 国际标准化组织(International Organization for Standardization,ISO) 国际电子技术委员会(International Electrotechnical Commission,IEC) ISO C标准的意图是提供C程序的可移植性,使其能适合于大量不同的操作系统,而不只是UNIX系统.此标准不仅定义了C程序设计语言的语法和语义,还定义了其标准库.因为所有现今的UNIX系统都提供C标准中定义的库例程,所以该

第二章小结

第二章小结 早听说数据结构要比程序设计要难,我早早就做好了心理准备,可是现实好像比我想象的还要难一些.这个星期基本结束了第二章关于线性表的学习.对于顺序表,上学期接触的比较多学起来还算比较顺利.链表就有一点困难了.书上没有完整的代码段,只是一些算法,不得不说一开始我真的有点蒙圈的感觉.但后面经过了预习以及上网查找资料就开始慢慢接受了单链表. 和顺序表不同,单链表是存储在连续或者不连续的空间里面的.每一个数据都必须跟着一个地址,指向下一个数据.虽然可能空间利用率比不上顺序表,但在插入删除操作时就显