Linux的shell变量

bash变量类型:
环境变量
本地变量(局部变量)
位置变量
特殊变量

本地变量:
set VARNAME=VALUE: 作用域为整个bash进程;


局部变量:
local VARNAME=VALUE:作用域为当前代码段;


环境变量:作用域为当前shell进程及其子进程;
export VARNAME=VALUE
VARNAME=VALUE
export VARNAME
“导出”


位置变量:
$1, $2, ...


特殊变量:
$?: 上一个命令的执行状态返回值;


程序执行,可能有两类返回值:
程序执行结果
程序状态返回代码(0-255)
0: 正确执行
1-255:错误执行,1,2,127系统预留;

输出重定向:
>
>>
2>
2>>
&>


撤消变量:
unset VARNAME


查看当shell中变量:
set


查看当前shell中的环境变量:
printenv
env

export


shell中如何进行算术运算:
A=3
B=6
1、let 算术运算表达式
let C=$A+$B
2、$[算术运算表达式]
C=$[$A+$B]
3、$((算术运算表达式))
C=$(($A+$B))
4、expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用
C=`expr $A + $B`


条件判断,控制结构:
单分支if语句

if 判断条件; then
  statement1
  statement2
  ...
fi


双分支的if语句:
if 判断条件; then
statement1
statement2
...
else
statement3
statement4
...
fi


多分支的if语句:
if 判断条件1; then
  statement1
  ...
elif 判断条件2; then
  statement2
  ...
elif 判断条件3; then
  statement3
  ...
else
  statement4
  ...
fi


测试方法:
[ expression ]
[[ expression ]]
test expression


bash中常用的条件测试有三种:
整数测试:
-gt
-le
-ne
-eq
-ge
-lt

例子:

INT1=63
INT2=77
[ $INT1 -eq $INI2 ]
[[ $INT1 -eq $INT2 ]]
test $INT1 -eq $INT2  


文件测试:
-e FILE:测试文件是否存在
-f FILE: 测试文件是否为普通文件
-d FILE: 测试指定路径是否为目录
-r FILE: 测试当前用户对指定文件是否有读取权限;
-w
-x

例子:
[ -e /etc/inittab ]
[ -x /etc/rc.d/rc.sysinit ]


exit: 退出脚本
exit #
如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码即为脚本的退出状态码;


测试脚本是否有语法错误
bash -n 脚本

bash -x 脚本:单步执行


bash变量的类型:
本地变量(局部变量)
环境变量
位置变量: 
$1, $2, ...
shift
特殊变量:
$?
$#:参数的个数
$*: 参数列表
$@:参数列表
引用变量:${VARNAME}, 括号有时可省略。

例子:
./filetest.sh /etc/fstab /etc/inittab
$1: /etc/fstab
$2: /etc/inittab



posted @ 2017-11-15 12:44  StivenYang  阅读(139)  评论(0编辑  收藏  举报