笔记——shell脚本学习指南
《shell脚本学习指南》机械工业出版 ISBN 987-7-111-25504-8
第2章
2.4
初级陷阱
1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超过64个字符。
2.在某些系统上,命令行部分包含了命令的完整路径名称。不过有些系统却不是这样;命令行的部分会原封不动地传递给被引用的程序。
3.别在选项之后放置任何空白,因为空白也会跟着选项一起传递给被引用的程序。
4.你需要知道解释其的完整路径名称。这可以用来规避可移植问题,因为不同的厂商可能将同样的东西放在不同的地方。
5.一些较旧的系统上,内核不具备解释#!的能力,有些shell会自动处理,这些shell对于#!与紧随其后的解释器名称之间是否可以有空白,可能有不同的解释。
2.5.5
- tr
tr [options] source-char-list replace-char-list
用途:转换字符。例如,将大写字符转换成小写。选项可让你指定所要删除的字符,以及将遗传重复出现的字符浓缩成一个。
常用选项:
-c 取source-char-list的反义。tr要转换的字符,变成未列在source-char-list中的字符。此选项通常与-d或-s配合使用。
-c 与-c相似,但所处理的是字符,而非二进制的字节值。
-d 自标准输入删除source-char-list里所列的字符,而不是转换他们
-s 浓缩重复的字符。如果标准输入中连续重复出现source-char-list里所列的字符,则将其浓缩成一个。
特殊文件:/dev/null与/dev/tty
/dev/null 位桶。传送到此文件的数据就会被系统丢掉。也就是说,当程序将数据写到次文件时,会认为它已完成写入数据的操作,但实际上什么都没做。
/dev/tty 当程序打开此文件时,UNIX会自动将它重定向到一个终端再与程序结合。
笔记——shell脚本学习指南的更多相关文章
- 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式
正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...
- Shell脚本学习指南笔记
Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...
- 转 shell脚本学习指南
shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...
- 《Shell脚本学习指南》学习笔记之自定义函数
Shell的函数在使用之前必须先定义,定义格式: [ function ] funname [()] { action; [return int;] } 可以带function fun()定义,也可以 ...
- 《Shell脚本学习指南》学习笔记之变量、判断和流程控制
变量 定义变量 可以使用export和readonly来设置变量,export用于修改或打印环境变量,readonly则使得变量不得修改.语法: export name[=word] ... read ...
- 《shell脚本学习指南》学习笔记之入门
为什么要使用shell脚本? shell脚本能够轻易处理文件与目录之类的对象,而且是各UNIX系统之间经过POSIX标准化的通用的功能,因此Shell脚本只要“用心写”一次,即可应用到很多系统上,因此 ...
- Shell脚本学习指南笔记(一)
脚本语言通常是解释型的,这类程序的运行.是由解释器读入程序代码,并将其转换成内部的形式, 再执行,解释器本身是一般的编译型程序. 第一行的开头处使用#!这两个字符,当内核扫描到改行的其余部分,看是否存 ...
- shell脚本学习指南-学习(1)
1.先看下面这个命令: $who | wc -l 计算当前登陆的用户个数: $who 当前登陆的有哪些用户: pipeling( | )可以在两个程序之间建立管道,左侧的结果成为右侧的 ...
- Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具
摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本 ...
随机推荐
- textbox 和lable换行保存和显示
前台: <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine"& ...
- linux中grep命令详解
http://jingyan.baidu.com/article/76a7e409e72777fc3b6e158a.html
- dbms_output.put_line长度限制问题
dbms_output.put_line长度限制问题 对于10g以上版本(包括10g), dbms_output.put_line的最大长度限制是32767. 如果报错buffer overflow, ...
- canvas画布属性globalAlpha 和 createRadialGradient函数出现的设置问题
今天用canvas做了一个页面特效,呼呼,在做的过程中发现createRadialGradient 和 globalAlpha这2个属性一起使用导入不能实现透明度问题,首先把createRadialG ...
- IIS监控指标
IIS Global Active Flushed Entries Active Flushed Entries 是缓存文件句柄,当前传输全部完成后将关闭此句柄.IIS Global 对象. Web ...
- [数据库]cakephp操作ENUM、tinyint等类型的一点说明
之前无法正常更新ENUM类型的数据,感觉是框架函数实现的bug. 问题很诡异,因为INIT的时候是可以成功写入的,没理由UPDATE的时候不成功. 前后琢磨了一下午,发现了一点蛛丝马迹才终于想通.问题 ...
- 纯CSS完成tab实现5种不同切换对应内容效果
很常用的一款特效纯CSS完成tab实现5种不同切换对应内容效果 实例预览 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...
- 创建DOTA2本地数据库(一)
在APP中,用本地数据库好于频繁的联网去获取相关数据.我使用SQLite作为本地的数据库,比较轻巧. 英雄 首先先建立英雄的数据库,暂时我先只设置ID,name,loaclized_name这三种,我 ...
- 【BZOJ】3521: [Poi2014]Salad Bar
题意 长度为\(n(1 \le n \le 1000000)\)的\(01\)字符串.找一个最长的连续子串\(S\),使得不管是从左往右还是从右往左取,都保证每时每刻已取出的\(1\)的个数不小于\( ...
- [转]starling教程-触摸事件(Touch Events)(四)
在前面提到过,Starling是Sparrow的姊妹篇,正因为这样,Starling里的touch事件的机制其实是为移动设备的触摸交互设计的,所以当你使用它进行使用鼠标交互的桌面应用开发时,第一眼会感 ...