Linux Shell编程基础

简单学习了一下Shell 编程的一些基础知识,这里作各总结吧。


1,变量:

 Shell变量分为本地变量,环境变量,位置变量和预定义变量

  1)本地变量:本地变量是只能在用户写的shell脚本生命周期中有效的变量,在用户的shell退出之后,该变量就不存在了。一般的定义格式为:

      local_variable_name=value(等号两边没有空格) 。 读取的时候需要用$符号

2)环境变量:相对与本地变量来说,环境变量对所有的用户均有效,而本地变量只是对本shell有效,环境变量可以在命令行中用export variable_name=value来设置,但是这样   设置的环境变量在用户退出本次shell的进程之后就会无效了,因此最好是在$HOME/.profile中设置。

3)位置参数:该参数是向shell脚本传递的参数,位置参数以空格分割开,为$0,$1,$2,$3....其中$0是shell脚本的文件名,例如在命令行输入以下内容:Shell_scropt_name param1 param2 param3 则$0 = Shell_script_name , $1=param1 , $2 = param2 , $3 = param3。

4)预定义变量:预定义变量和环境变量相似,也是在Shell一开始的时候就定义了的。常见的Shell预定义变量有:

     $#:传递给脚本的参数的个数

     $*:所有位置参数的内容

     $?:命令之后的返回状态

     $$ :当前进程的进程号(每个Shell相当于一个进程)

     $0:当前执行的进程名


2,Shell中的引号的作用(“ ”(双引号) , ‘ ’(单引号) , ``(反引号))

    1),双引号:关闭除$ , ``(反引号),\之外的任意字符或字符串。

          如:str = "nice to meet you"

                  echo $str 和 echo "$str"输出是一样的,只是因为双引号不关闭$的功能。

   2),单引号:关闭所有的符号, 比双引号更加严格。

          echo '$str' 输出的是: $str 。

   3),反引号:设置系统命令的输出变量,内容将作为一个系统的命令使用。通常用在双引号之内。


3,条件结构。

1)整数比较

#!/bin/bash
#test
x=5
y=8
if [[ $x -lt $y ]]
	then 
		echo "$x < $y"
elif [[ $x -gt $y ]]
	then 
		echo "$x > $y"
else 
	echo "$x = $y"
fi
整数比较的操作符:

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

2),字符串比较

#!/bin/bash
#test
str="ernie"
if [[ $str == "Ernie" ]]	
	then 
		echo "It is Ernie."
else 
	echo "It is not Ernie."
fi
字符串比较的操作符:

== , != , < , > , -z (字符串为空), -n(字符串非空)

3),文件测试

#!/bin/bash
#test
thefile="test.sh"
if [ -e $thefile ]	#测试文件是否存在	
then 
	echo "File Exists."
	if [ -f $thefile ]	#测试文件是否是一个普通文件
	then 
		echo "regular file."
	elif [ -d $thefile ]	#测试文件是不是目录
	then 
		echo "directory."
	elif [ -h $thefile ]	#测试文件是不是符号链接
	then 
		echo "symbolic link."
	fi
else 
	echo "File not Exists."
fi
exit
文件测试操作符:

-e:文件是否存在
-f :文件是否是普通文件

-s:文件的长度是否为零

-d:文件是否是目录

-h:文件是否是链接

-r:文件是否是可读  -w -x

file1  -nt  file2 :文件1是否比文件2新。

你可能感兴趣的:(Linux Shell编程基础)