2.shell常见变量及符号

一、常见变量

不同于一些编译型语言,shell中变量不需要声明,直接使用,如:a=5。调用变量时,则通过$a或${a}对变量进行引用。

$a与${a}的区别,如:a=1,$a表示1,$a23,则不存在;${a}表示1,${a}23,则表示123

$$ :shell本身的PID

$!:shell最后运行的后台PID

$0:shell脚本的文件名

$1 ~ $n:shell脚本的各个参数值,如$1表示第一个参数,$2表示第二个,以此类推

$#:shell脚本的参数个数

$?:上一条命令返回的结束代码(0表示正常,其他表示异常)

$*:shell脚本的所有参数的列表,若$*用""括起来,即"$*"表示以"$1 $2 ... $n"形式输出所有参数

$@:shell脚本的所有参数的列表,若$@用""括起来,即"$@"表示以"$1" "$2" ... "$n"形式输出所有参数

$*和$@没用用引号包含起来时是一样的,都为"$1 $2 ... $n"形式输出

$() 等同于反引号``,运行一段命令

$(()) 进行数字运算,如echo $((a+b+c))

二、常见符号

> :重定向输出,会覆盖原有的内容

>> : 重定向输出,在原有内容后追加

< : 重定向输入,打开一个文件作为输入使用

<< : 重定向输入,表示接受一个输入结束的标识,当输入这个标识就结束输入。如果定界符以任何一种形式引号括起来,shell便不会处理输入的内容

; :命令分隔符

| :管道符,将上一条命令的输出传递给后面

&& :与符号,前面的命令执行结果为非0时,后面的才会继续执行

|| :或符号,前面的命令执行结果为0时,后面的才会继续执行

" " : 双引号中有命令、变量等,会先把变量、命令解析出结果,再输出。除$(美元符号)、\(反斜杠)、’(单引号)、和”(双引号)这几个字符仍是特殊字符并保留其特殊功能外,其余字符仍作为普通字符对

' ' : 单引号括起来的字符都作为普通字符出现,特殊字符用单引号括起来以后,也会失去原有意义,而只作为普通字符解释

` ` :反引号, 表示里面需要执行的是命令。与$()相同。反引号是一个老的用法,$()才是新的用法

无引号 : 定义字符串时,字符串不能包含空白字符(如Space或Tab),一般连续的字符串,数字,路径等可以不加引号。

2>/dev/null :将错误输出重定向给/dev/null这个文件的,即所有错误的输出都会被丢弃

1>/dev/null :将标准输出重定向给/dev/null这个文件的,即所有正确的输出都会被丢弃

三、数字运算

expr命令可以实现数值运算、数值或字符串比较、字符串匹配、字符串提取、字符串长度计算等功能。

1、整数运算

加:expr 10 + 2                        expr $a + $b

       echo $[10 - 2]                    echo $[$a + $b] 

       echo $((10 + 2))                echo $(($a + $b))

减:expr 10 - 2                         expr $a - $b

       echo $[10 - 2]                    echo $[$a - $b] 

       echo $((10 - 2))                 echo $(($a - $b))

乘:expr 10 \* 2                         expr $a \* $b

       echo $[10 \* 2]                    echo $[$a \* $b] 

       echo $((10 \* 2))                 echo $(($a \* $b))

除:expr 10 / 2                         expr $a / $b

       echo $[10 / 2]                    echo $[$a / $b] 

       echo $((10 / 2))                 echo $(($a / $b))

取余:expr 10 % 2                         expr $a % $b

           echo $[10 % 2]                    echo $[$a % $b] 

           echo $((10 % 2))                 echo $(($a % $b))

注:乘法须有转义符\

expr运算时,运算符左右必须有空格,其余两种可以不用。如:expr 10+2 非法。

2、小数运算

bc计算器,为linux内置科学计算器。

保留小数位数可以通过scale关键字控制。如:scale=2,表示运算结果小数点后保留两位。只进行加减是scale不生效,这时只要再除以1就可以了。

进制转换可以通过ibase、obase关键字控制。如:ibase=10;obase=2,表示输入为10进制,运算结果按照2进制输出

四、常见的条件判断

[ 表达式 ]

文件或者路径:

-e :文件是否存在,如果是,则返回true

-d : 文件是否为目录,如果是,则返回true

-f : 文件是否为普通文件(不是目录,也不是设备文件),如果是,则返回true

权限:

-r : 是否有读取权限

-w : 是否有写入权限

-x : 是否有执行权限

整数关系运算:

-eq : 等于(equal)

-ne : 不等于(not equal)

-gt : 大于(greater than)

-lt : 小于(lesser than)

-ge : 大于或等于(greater or equal)

-le : 小于或等于(lesser or equal)

字符串:

= : 相等

!= : 不相等

-z : 字符串长度是否为0,为0则返回true

-n : 字符串长度是否为0,部位0则返回true

$a : 字符串是否为空,不为空则返回true

[ ]与表达式之间必须有空格

小数:

使用bc命令,如:[ `echo '1.2 < 1.3' | bc` -eq 1 ]

命令需要用` `或$()包含,bc计算器可以使用浮点型和<或>符号

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值