Advanced Bash-Shell Guide(Version 10) 学习笔记二

变量替换
$variable 是 ${variable}的简写
    39 hello="A B C D"
    40 echo $hello # A B C D
    41 echo "$hello" # A B C D
    引号保留变量里面的空白
    
    1 echo "$uninitialized" # (blank line)
    2 let "uninitialized += 5" # Add 5 to it.
    3 echo "$uninitialized"
    未初始化的变量是null,但是在算数表达式中等于0
命令替换
    17 a=`ls -l`   # Assigns result of ‘ls -l‘ command to ‘a‘
    18 echo $a
    或
    a=$(ls -l)
    echo $a
    
    字符串+整数等于整数,字符串相当于0
    但是在除以一个null变量的时候,系统报错。
    
变量类型
    本地变量
        在代码块可见
    环境变量
        影响shell和用户接口的变量
位置参数
    取最后的参数
        1 args=$# # Number of args passed.
        2 lastarg=${!args}
        或
        lastarg=${!#}
[...]和[[...]]
使用[[...]]比起[]可以阻止在脚本中常见的逻辑错误
例如:&&, ||, <, and > 操作

在进行算数运算的时候,[[...]]会将八进制和十六进制进行自动计算而[]
则不可以
    5 decimal=15
    6 octal=017 # = 15 (decimal)
    7 hex=0x0f # = 15 (decimal)
    8
    9 if [ "$decimal" -eq "$octal" ]
    10 then
    11 echo "$decimal equals $octal"
    12 else
    13 echo "$decimal is not equal to $octal"    # 15 is not equal to 017
    14 fi    # Doesn‘t evaluate within [ single brackets ]!
    
    
    17 if [[ "$decimal" -eq "$octal" ]]
    18 then
    19 echo "$decimal equals $octal"    # 15 equals 017
    20 else
    21 echo "$decimal is not equal to $octal"
    22 fi # Evaluates within [[ double brackets ]]!
    
((...))算数测试
    如果表达式计算是0,则它的退出状态码是1或false
    如果表达式计算是非0,则它的退出状态码是0或true
    它的退出状态和[...]相反
        
        
    echo ${aa##*/}    获取变量aa的文件名称 以/位分隔符
    ${filename##*.} != "gz"
    filename##*.    获取filename的扩展名    
        
        
    Infinite Monkeys    
    AppMakr    
字符串操作

获取字符串长度
    ${#string}
    expr length $string
    expr "$string" : ‘.*‘

获取从字符串开头匹配的字符串的长度
    expr match "$string" ‘$substring‘
    expr "$string" : ‘$substring‘    
        $substring is a regular expression

获取子串在字符串中开始的位置
    expr index $string $substring

取出子串
    ${string:position}
    ${string:position:length}

时间: 2024-08-10 00:19:11

Advanced Bash-Shell Guide(Version 10) 学习笔记二的相关文章

Advanced Bash-Shell Guide(Version 10) 学习笔记一

我喜欢的一句话the only way to really learn scripting is to write scripts 学习脚本的唯一方法就是写脚本 更好的命令行参数检测    E_WRONGARGS=85 # Non-numerical argument (bad argument format).    41 #    42 # case "$1" in    43 # "" ) lines=50;;    44 # *[!0-9]*) echo &

Advanced Bash-Shell Guide(Version 10) 学习笔记三

书上的脚本比较多 记录比较有用的脚本 更好的方式检查命令行参数是否为数字 40 # E_WRONGARGS=85 # Non-numerical argument (bad argument format). 41 # 42 # case "$1" in 43 # "" ) lines=50;; 44 # *[!0-9]*) echo "Usage: `basename $0` lines-to-cleanup"; 45 # exit $E_WR

shell编程教程or学习笔记

----------------------------------------------------hello world------------------------------------------- linux 创建如下文件 vim hello #! /bin/bash   //告诉Shell 使用哪个Shell 程序 #Display  a line    //#表示注释 //空白行用来区分不同更功能 没有实际意义 name="[email protected]" ec

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚

Ajax学习笔记(二)

二.prototype库详解 1.prototype库的使用 //导入下载好的prototype.js文件 <script type="text/javascript" src="prototype.js"></script> //在自己的js中直接使用Prototype对象 <script type="text/javascript"> document.writeln("Prototype库的版本

spidering hacks 学习笔记(二)

看过去很乱,学习的记录东西而已,等我读完这本书,就把笔记给整理下!嘿嘿 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

Android学习笔记二十四之ListView列表视图二

Android学习笔记二十四之ListView列表视图二 前面一篇我们介绍了常用的几种适配器的简单实现和ListView的简单使用,这一篇中,我们介绍一下ListView的优化和一些其它的问题. ListView优化方法一 在ListView中,我们最常用的就是自定义Adapter,在我们自定义Adapter中,需要实现两个比较重要的方法getCount()和getView(),前者是负责计算ListView的总Item数,后者是生成Item,有多少个Item就会调用getView()方法多少次

小猪的数据结构学习笔记(二)

小猪的数据结构学习笔记(二) 线性表中的顺序表 本节引言: 在上个章节中,我们对数据结构与算法的相关概念进行了了解,知道数据结构的 逻辑结构与物理结构的区别,算法的特性以及设计要求;还学了如何去衡量一个算法 的好坏,以及时间复杂度的计算!在本节中我们将接触第一个数据结构--线性表; 而线性表有两种表现形式,分别是顺序表和链表;学好这一章很重要,是学习后面的基石; 这一节我们会重点学习下顺序表,在这里给大家一个忠告,学编程切忌眼高手低,看懂不代表自己 写得出来,给出的实现代码,自己要理解思路,自己

JavaScript--基于对象的脚本语言学习笔记(二)

第二部分:DOM编程 1.文档象模型(DOM)提供了访问结构化文档的一种方式,很多语言自己的DOM解析器. DOM解析器就是完成结构化文档和DOM树之间的转换关系. DOM解析器解析结构化文档:将磁盘上的结构化文档转换成内存中的DOM树 从DOM树输出结构化文档:将内存中的DOM树转换成磁盘上的结构化文档 2.DOM模型扩展了HTML元素,为几乎所有的HTML元素都新增了innerHTML属性,该属性代表该元素的"内容",即返回的某个元素的开始标签.结束标签之间的字符串内容(不包含其它