这周我们主要学习了写脚本的简单语法,写了一些简单的脚本,下面就由我来简单介绍一下:
第一步使用文本编辑来创建脚本:
创建好后在里面写想要运行的脚本即可,然后按Esc—wq退出保存即可。也可以按q不保存退出;q!不保存强制退出;wq!保存强制退出。
第二步运行脚本,给予执行权限,在命令行上指定脚本的相对路径和绝对路径
对了,当在脚本里输入内容时,要Ese—i,进入输入模式。
bash -n f1.sh:bash编写完脚本后我们可用:bash –n 脚本名 (对脚本进行语法测试) ,没错会什么也不显示
bash -x f1.sh :显示脚本运行的过程
变量:
查看当前进程号
pstree:进程树
ps -ef :显示进程信息
echo $$:查看当前进程号
echo $PPID:查看当前的父进程
echo $SHLVL:查看当前第几级bash, bash–echo $SHLVL进入子bash;exit,显示上一级bash,zhidao tuichu
本地变量:仅对当前SHELL有效,对子SHELL也无效
环境变量:对当前SHELL及其子SHELL均有效。
本地变量与环境变量的区别就是;本地变量对子shell无效,环境变量对子shell有效
如何查看是环境变量还是本地变量:
set:即显示本地变量又显示环境变量
env:只显示本地变量
unset s :删除变量s
.和source 只会在当前shell下执行文件,不会进入子shell
在赋值时“”时部完全转译
”完全转译
readonly name
declare -r name :设置只读变量
readonly -p :查看进程中所有的只读变量
位置变量:在脚本代码中调用通过命令行传递给脚本的参数
$1, $2, …:对应第1、第2等参数,shift [n]换位置
$0: 命令本身
$*: 传递给脚本的所有参数,全部参数合为一个字符串
$@: 传递给脚本的所有参数,每个参数为独立字符串
$#: 传递给脚本的参数的个数
$@ $* 只在被双引号包起来的时候才会有差异
bash中的算术运算:help let
+, -, *, /, %取模(取余), **(乘方)在bc当中乘方是^
实现算术运算:
(1) let var=算术表达式
(2) var=$[算术表达式]
(3) var=$((算术表达式))
(4) var=$(expr arg1 arg2 arg3 …) 乘法时要转译* ,即\*
(5) declare –i var = 数值
(6) echo ‘算术表达式’
bc里的乘方只能用^;2^3
let里的乘方用**;2**3
echo $[$RANDOM%50]显示的是0-50
与:
真与真 真
真与假 假
假与真 假
假与假 假
只要有一个假则为假
短路与 前一个为假,则不再判断第二个值。
或
真或真 真
真或假 真
假或真 真
假或假 假
只要有一个真则为真
短路或,前一个为真,则不再判断第二个值
补充:ROOT权限:
root权限虽然很大,但在执行的时候文件上必须有执行权限,文件所属人,所属组,其他人必须要有一个执行权限,之后root才能-x出来,不然root也没办法,以为会默认把他当成普通文件,而普通文件本身就没办法执行,所以权限位有了x相当于脚本了,就可以查了。
今天先总结到这里吧,剩余没有总结完的,我课下在看看。
原创文章,作者:menger,如若转载,请注明出处:http://www.178linux.com/84018