SHELL起步

最近一直忙着面试,闲暇之余想看下SHELL和Perl编程,增加下自己的身价。

SHELL和Perl的小语法点比较多,看了容易忘。所以我就一边写程序,一边巩固知识点吧。先从SHELL开始,先讲前面3章。Sriranga Veeraraghavan的《精通SHELL编程》的读书笔记。

shell编程
一、变量
1变量的操作
1.1标量变量
        name=value   FRUIT=peach
        带空格的变量值需要用引号引起来。
        访问变量 $echo $FRUIT
1.2数组变量
        建立数组
        如果一个数组变量名和一个已经被定义了的标量变量名重名,那么标量变量的值就变成了数组变量中索引为0的值。
    ksh:   set -A name value1 value2 ... valueN
      bash:  name=(value1 ... valueN)      
      访问数组中的值
        ${name[index]}    ${name[*]}
        只读变量 readonly
        删除变量 unset name
2环境和shell变量

二、置换
元字符是指在shell中具有特殊意义的字符。置换是指shell将包含字符的字符串根据其意义转换成新字符串的过程。
1文件名置换
        shell将包含有通配元字符或通配符的字符串转换成一系列的文件名,这就是通配。
        通配元字符(通配符)  *匹配0个或多个任意字符 ?匹配1个任意字符 [characters]匹配给定的characters中的任何一个字符
        cmd [!chars]

2变量置换
        高级变量置换:
            缺省值置换:${param:-word}
            缺省值赋值:${param:=word}
            空值错误:  ${param:msg}
            有值置换:  ${param:+word}

3命令和算式置换
        命令置换使你能够获得命令的输出结果,算式置换能使你用shell完成简单的整数运算。
        命令置换 `command` 是反引号不是但引号
        算式置换 $((5/2))

三、引用
        关闭对特殊字符含义的解析处理被称为引用(quoting),可以由以下3种方式来实现:
        \  ' "   
        >
        引用规则和场合
            引用处理忽略单词界限
            在命令中的引用处理组合
            在单一参数中内嵌多个空格
            引用处理换行以在下一行中继续
            引用处理以访问包含特殊字符的文件名
            引用处理正则表达式通配符
            引用处理反斜杠以启用echo转义序列
            引用处理通配符以适应cpio很find

原文地址:https://www.cnblogs.com/junzhkevin/p/2196193.html