Linux Bash小结1

1.Linux Bash变量类型

A 本地变量

B 环境变量

C 位置变量

D 特殊变量


需要注意的是:

父SHELL和子SHELL是两个不同的进程,他们不会共享本地变量。

环境变量对当前SHELL及其子SHELL有效。

位置变量,形如$1,$2

特殊变量,常用的有$?,$#


2.撤销与查看变量

撤销变量:

unset 变量名


查看变量:

env

export

printevn


3.变量如何进行算术运算?

我们知道对于SHELL而言,变量默认情况下都是字符串类型的。当然我们可以使用declare -i的方式显式指定数值类型。

方式一:$[]

[root@localhost ~]# echo $[1+2]
3
[root@localhost ~]# a=100
[root@localhost ~]# b=2
[root@localhost ~]# echo $[$a/$b]
50
[root@localhost ~]#


上面的方式非常常用。


方式二:let 

[root@localhost ~]# let a=1+2
[root@localhost ~]# echo $a
3
[root@localhost ~]#


方式三:$(())

[root@localhost ~]# echo $((1+2))
3
[root@localhost ~]# echo $((9%2))
1
[root@localhost ~]#


方式四:expr

[root@localhost ~]# echo `expr 1 + 2`
3


4.条件测试

在JAVA的使用中,我们经常需要进行判断,根据条件来进行不同的操作,实际中,下面三种条件测试最为常用:

A 数值比较


[ num1 -eq num2 ]

-eq -gt -lt -ge -le -ne

记住,不能用>,<这种符号。


B 字符串测试

[ str1 == str2 ]

[ str1 != str2 ]


[ -n str1 ] 即not empty string,如果str1为"",则为假。用于判断字符串非空。

[ -z str1 ] empty string is true。



C 文件判断

[ -e filepath ]

[ -f filepath ]

[ -d filepath ]

[ -w filepath ]

[ -r filepath ]

[ -x filepath ]


测试的几种形式:

[ expression ]

[[ expression ]]

test expression


5.流程控制

if

if  condition ; then

    statement

fi



if condition ; then

   statement

else 

   statement 

fi

    

    

if condition ; then

   statement


elif condition ; then

   statement


elif condition ; then

   statement

fi


for

for i in sequence ; do

    statement

done


需要注意的是,sequence如何生成的问题。

比如,整数的话,那么可以使用seq命令。

seq end

seq start end

seq start step end

当然,这个sequence也可以是`ls somedir`等命令的执行结果~



总之,类似于JAVA,可以联想对比下~


你可能感兴趣的:(linux,bash)