Shell脚本学习指南
1,$ who命令可以查看当前系统谁在登录
2,$ who | wc -l 该命令是计算用户个数,不返回谁在登陆了,只返回几个用户在登录
3,| 是管道符号,可以在两程序间建立管道(pipeline),上面的命令是who的输出,成了wc命令的输入,wc所列出的结果就是已登录用户的个数
4,如何将上面管道转变成一个独立的命令。方法是把这条命令输入一个一般的文件中,然后使用chmod为该文件设置执行的权限,如下所示:
$ cat > nusers 建立文件,使用cat复制终端的输入
who | wc -l 程序的内容
按Ctrl+D可以退出输入命令状态,也就是表示end of file
$ chmod +x nusers 让文件有执行的权限
$ ./nusers 执行测试,你会发现结果和直接执行 who | wc l一样。 然后你也可以查看文件nusers的内容
5,自给自足的脚本:位于第一行的#!
当shell执行一个程序时,会要求UNIX内核启动一个新的进程(process),以便在该进程里执行所指定的程序。内核知道如何为编译型程序做这件事。但是我们写的nuers这个shell脚本是解释型程序。当shell要求内核执行它时,内核无法做,并回应”not executable format file"错误信息。shell收到此错误信息时,就会说“啊,这不是编译型程序,那么一定是shell脚本”,接着会启动一个新的/bin/sh(标准shell)副本来执行该程序。
当系统只有一个shell时,退回到/bin/sh很方便,但现在UNIX系统通常有好几个shell,所以需要脚本文件中第一行的开头处使用#!这两个字符。 当一个文件中开头的两个字符是#!时,内核会扫描该行其余的部分,查看是否存在可用来执行程序的解释器的完整路径。shell脚本通常一开始都是 #! /bin/sh
6,shell世界里,变量值可以是(而且通常是)空值,也就是不含任何字符。空值就是null
7,shell变量名称的开头是一个字母或下划线符号,后面接任意长度的字母,数字或下划线符号。变量长度无限制
$ my_var=this_is_a_long_string_that_does_not_mean_much 分配变量值
$ echo $my_var 打印变量值
Shell脚本学习指南相关推荐
- Shell脚本学习指南(三)——文本处理工具
文章目录 排序文本 行的排序 以字段的排序 文本块排序 sort的效率 sort的稳定性 sort小结 删除重复 重新格式化段落 计算行数.字数以及字符数 打印 打印技术的演化 其他打印软件 提取开头 ...
- 《Shell脚本学习指南》读书笔记
P30-31 软件工具的原则 1.一次做好一件事 2.处理文本行,不要处理二进制数据 3.使用正则表达式 4.默认使用标准输入/输出 5.避免喋喋不休 6.输出格式必须与可接受的输入格式一致 7.让工 ...
- Shell脚本学习指南(七)——产生脚本
文章目录 前言 路径查找 软件构建自动化 前言 本篇,我们将进一步处理更复杂的工作.我们认为这里举出的例子都是一般用得到的工具,它们每一个都截然不同,且在大多数UNIX工具集里也没有. 在篇中的程序, ...
- linux shell脚本学习指南,shell脚本学习指南[二](Arnold Robbins Nelson H.F. Beebe著)
该进入第四章了,刚才看到一个帖子标题:我空有一身泡妞的好本领,但可惜自己是个妞.汗-这个...音乐无国界嘛,这个不应该也没性别界么? 第四章文本处理工具 书中先说明了以下排序的规则,数值的就不用说了, ...
- Shell脚本学习指南 - 第二章入门篇
shell脚本的第一行#! #! /bin/awk -f 内核会扫描文件开头的#!后面内容,跳过所有空白符号,寻求可以用来执行程序的解释器的full path和option(option后面的空格会识 ...
- Shell脚本学习指南-查找与替换篇
一.查找与替换 编写 Shell脚本时经常用到的两个基本操作: 1.文本查找 (searching) - 寻找含有特定文本的行 2.文本替换(substitution)- 更换找到的文本 可以使用固定 ...
- Shell脚本学习指南(六)——输入/输出、文件与命令执行
文章目录 前言 标准输入.标准输出与标准错误输出 使用read读取行 关于重定向 额外的重定向运算符 文件描述符处理 printf的完整介绍 波浪号展开与通配符 波浪号展开 使用通配符 命令替换 为h ...
- Shell脚本学习指南(二)——查找与替换
文章目录 前言 查找文本 简单的grep 正则表达式 什么是正则表达式 POSIX方括号表达式 基本正则表达式 匹配单个字符 后向引用 单个表达式匹配多字符 文本匹配锚点 BRE运算符优先级 匹配单个 ...
- Shell脚本学习指南(五)——变量、判断、重复动作
文章目录 前言 变量与算术 变量赋值与环境 参数展开 展开运算符 位置参数 特殊变量 算术展开 退出状态 退出状态值 if-else-else-fi语句 逻辑的NOT.AND与OR test命令 ca ...
- 《Shell脚本学习指南》第一章 背景知识
1.1 Unix简史 Unix第一版诞生于1970年,也就是贝尔实验室退出Multics项目不久. 在Unix广受欢迎的功能中,有许多是来自Multics操作系统. 其中最著名的有:将设备视为文件,以 ...
最新文章
- Opera浏览器无法观看土豆 优酷 新浪视频的解决办法!
- jQuery插件—获取URL参数
- 移动端为何不使用click而模拟tap事件及解决方案
- clickhouse 新增列_ClickHouse入门记录
- append 换行_代码风格:答应我,让括号换行吧!!
- 本地方法(JNI)——从java 程序中调用C函数
- python内核死亡的原因_Python的内核由于DLL而死亡
- python爬虫学习之页面登陆
- HTML 基础语言
- 网易丁磊:创造中国特色文化精品,助力实现中国文化大时代
- Beetl学习总结(1)——新一代java模板引擎典范 Beetl入门
- html5 canvas 获取当前坐标,html5 canvas fillRect坐标和大小的问题解决方法
- 浙江省二级计算机试题,2015浙江省计算机等级考试试题 二级ACCESS考试题库
- cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client libr....
- java maven是做什么的_maven是干什么用的
- 为什么我的计算机不能更新系统,为什么我的电脑重新安装系统建设银行网银不能......
- 企业如何做好员工关怀,减少人才流失
- ora-12505错误
- git学习——上传项目代码到github
- 特色英文短语[转帖]