标签:enter stat 状态码 环境变量 $? $2 state 特殊变量 fat
变量类型:
环境变量:
作用域为当前shell以及其子shell
创建:export VarName
本地变量
作用域:为整个bash进程,进程结束该变量就被撤销了
创建: VarName=Value
局部变量:
作用域:只能是某个函数,也只能在函数中使用
位置变量:用来引用函数的参数
例如:./file.sh /etc/fatab /etc/initab
$1:/etc/fstab
$2:/etc/initab
$n:..
shift:第一个位置变量被删除,后面的位置变量一次进1、
shift n:一次删除n个位置变量,后面的位置变量依次进你n
特殊变量:
$?:返回上一个命令的执行状态返回值
$#:表示位置参数的个数
$*:位置参数列表
$@:位置参数列表
程序执行状态有两种返回值
一个是0:表示执行成功
一个是(1-255,其中1,2,127系统留用)表示执行错误
脚本在执行时会启动一个子shell进程:
命令行中启动的脚本会继承当前shell环境变量
系统自动执行的脚本(非命令行启动)就需要自我定义需要的各环境环境变量
脚本基础:
第1行为shebang----->指定解释器比如:/bin/bash
脚本执行的几种方法:
1、给予该脚本一个执行权限,然后输入文件的路径就可以执行
2、将该脚本所在的路径写入全局变量PATH中去,直接输入该脚本的名称即可执行
bash中的条件判断:
1、整数测试
2、字符测试
3、文件测试
条件测试的表达式‘
[ expression ]
[[ expression ]]
test expresssion
整数比较:
-eq :测试两个整数是否相等
-ne:测试两个整数是否不相等
-gt:测试一个整数是否大于另一个整数
-lt:测试一个整数是否小于另一个整数
-ge:大于或等于
le:小于等于
命令间逻辑关系(短路原则):
$$:逻辑与
||:逻辑非
条件语句:
1
if [] ; then
statement1
statement2
..........
fi
2
if []
then
statement1
statement2
..........
fi
3
if [] ;then
elif [] ;then
elif [] ;then
......
else
fi
文件测试:
-e FILE--->测试文件是否存在
-f FILE--->测试文件是否是普通文件
-d FILE----->指定路径是否为目录
-r FILE------>测试当前用户对指定文件是否具有读权限
-w FILE----->测试当前用户对指定文件是否具有写权限
-x FILE------>测试当前用户对指定文件是否具有执行权限
定义脚本的退出状态码:
exit:退出脚本
如果脚本没有明确定义退出状态吗,那么,最后执行的一条命令的退出状态吗为脚本的退出码
测试脚本是否有错误:
bash -n 脚本名称--->错误信息不一定可靠
bash -x 脚本名称--->单步执行
标签:enter stat 状态码 环境变量 $? $2 state 特殊变量 fat
原文地址:https://www.cnblogs.com/The-eassy-of-mindon/p/10077762.html