《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脚本学习指南的更多相关文章

  1. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  2. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  3. 转 shell脚本学习指南

    shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...

  4. 《Shell脚本学习指南》学习笔记之自定义函数

    Shell的函数在使用之前必须先定义,定义格式: [ function ] funname [()] { action; [return int;] } 可以带function fun()定义,也可以 ...

  5. 《Shell脚本学习指南》学习笔记之变量、判断和流程控制

    变量 定义变量 可以使用export和readonly来设置变量,export用于修改或打印环境变量,readonly则使得变量不得修改.语法: export name[=word] ... read ...

  6. 《shell脚本学习指南》学习笔记之入门

    为什么要使用shell脚本? shell脚本能够轻易处理文件与目录之类的对象,而且是各UNIX系统之间经过POSIX标准化的通用的功能,因此Shell脚本只要“用心写”一次,即可应用到很多系统上,因此 ...

  7. Shell脚本学习指南笔记(一)

    脚本语言通常是解释型的,这类程序的运行.是由解释器读入程序代码,并将其转换成内部的形式, 再执行,解释器本身是一般的编译型程序. 第一行的开头处使用#!这两个字符,当内核扫描到改行的其余部分,看是否存 ...

  8. shell脚本学习指南-学习(1)

    1.先看下面这个命令: $who  | wc  -l  计算当前登陆的用户个数: $who   当前登陆的有哪些用户: pipeling(   |  )可以在两个程序之间建立管道,左侧的结果成为右侧的 ...

  9. Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具

    摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本 ...

随机推荐

  1. 谓词 (NSPredicate)使用详情

    谓词 更加详细:http://blog.csdn.net/ztp800201/article/details/8116081 //判断是否满足条件 第一种 判断一个数组(array)中满足条件的 NS ...

  2. 我的jQuery源码读后感-jquery1.11.x 集成了 AMD

    jquery1.11.x 集成了 AMD AMD 加入到了 jQuery, jQuery 把源码切分成各个逻辑模块. ready 整合成依赖 Deferred 的模块. 有些模块被切分成一些更加利于维 ...

  3. express请求及对应的获取说明

    express 封装了多种 http 请求方式,我们主要只使用 get 和 post 两种,即 app.get() 和 app.post() . app.get() 和 app.post() 的第一个 ...

  4. 判断.NET4.0是否安装

    Clinet 和 Full存在一个都说明安装了Framework "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client"&qu ...

  5. NeoKylin5.6下安装部署达梦(DM7)数据库

    1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 [root@jdbh ~]# uname -ra Linux jdbh -.el5xen # SMP Fri Jul :: EDT x ...

  6. fnc.tld学习编写

    使用 el 的过程中,需要使用到后端代码处理逻辑,这个时候我们就需要自定义 方法. 如我们后端代码定义如下: package com.rhythmk.common; public class FncH ...

  7. javaScript中其他类型的值转换为Boolean类型

    将javaScript中其他任意类型的值转换为对应Boolean类型的值. 一  将number类型的值转换为Boolean类型 数值为0: var myBoolean = new Boolean(0 ...

  8. swfit-扩展语法

    import UIKit extension Double { var km: Double { } var m : Double { return self} var cm: Double { re ...

  9. kafka模块概述

    简介 kafka主要用于实现低延迟的发送和收集大量的事件和日志数据--通常是活跃的数据(PV.访问记录等),数据以日志形式记录下来,然后由一个专门的系统来进行日志的收集与统计: 吞吐量极高的分布式消息 ...

  10. spring mvc controller间跳转 重定向 传参 (转)

    转自:http://zghbwjl.blog.163.com/blog/static/12033667220137795252845/ 1. 需求背景     需求:spring MVC框架contr ...