Shell脚本 是一个脚本语言,用来自动执行我们指定的系统命令的。 通俗的讲,再shell脚本当中,我们会编写一些需要使用的系统命令于其中再运行这个叫本的时候,这些被编写进去的系统命令会按照书写的顺序及规则以此运行。
包括后期我们要学的python实际原本也是通过shell演变过去的!!
学习一们语言首先我们要先了解什么叫变量@ 在很多的编程语言当中都会有变量这样一个概念性的名词。 变量实际上是一个抽象的概念。它本身并没有任何意义。只作为一个名称来使用这个名称指代表了什么呢? 我们如果想要在脚本或程序当中设定一个值。那麽这个置会再脚本运行得到时候起作用。在脚本停止运行的时候,们就不再起到作用了。那麽这个值我们说他一定存储再内存当中。
内存当中存储数据,一般想要去查找他,需要指定内存空间的地址信息。就好想通过街道名称,门牌号
自定义变量 变量设置方法 变量名=变量值
一般来说,我们我们给变量齐名的时候有一些规范需要知道! 通常名称不能用纯数字,也不能用数字开头,可以是a-z或者A-Z会数字或下划线组合而成!
如果我们再linux的命令行当中设定一个新的变量abc,并将他赋值为123.那麽应该如何书写: Abc=123 那麽我们如何验证呢: Echo 变量名 Echo abc
如何取消变量名呢: Unset 变量名 Unset abc
变量调用: 变量名 abc
环境变量 PATH PWD UID 环境变量不许自行修改!! Path变量如果更改为空,则所有的外部命令都会不能用 path默认的值是不允许我们随意改变,他的默认值如下面修改记得改回来 /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/root/bin
位置变量 Echo第一个参数是$1 编写脚本myFirstShellScript.sh
./执行这个脚本没有任何作用! 在后面需加入参数!例子::
?保存上一条命令的返回值 如果上一条命令正常运行则返回时为0 如果上一条命令非正常运行则返回值非0 #输出总数 去脚本文件添加如下内容 然后执行命令:
实例:
练习: 输出./first.sh 获得: #########! 总共有5个参数! 第一个参数是111 所有参数:111 222 333 444 555
输出:
单双引号包裹的解译:
为什么abc没有输出出来 需在调用它之前 变量一下abc
就可以输出出来了!!!
·····反点号用来包裹命令·····
它可以让一段命令代码另外一个命令代码当中去运行 Read用来让用户进行输入操作,并将用户输入的内容复制给read后指定的变量 在read使用过程当中,我们为了更加人性化,需要 Read -p “提示内容” 变量名 接受用户输出的内容赋值内容 Export全局变量 在全局变量都能使用,作用就是linux全局 使用方法 A=1 (普通设置变量方法) Echo
想要运行全局的export需要先source+shell脚本的绝对路径!然后echo就可以看见123了!!!
Expr 相当于linux里面的bc计算器!!!
Abc=10 cde=20
$RANDOM 取值范围是0-32767(有符号的16-bit)
测试语句: 【 -d /etc 】测试是否是目录语句 【 -e /etc 】测试目录或文件是否存在 【 -f 目标文件或目录 】测试目标是否是文件 【 -r 目标 】判断当前用户对指定文件是否存在 【 -w 目标 】判断当前用户对指定文件是否有写权限 【 -x 目标 】判断当前用户对指定文件是否有运行权限 注意这里的-r/-w/-x并不直接等于文件属性上显示的rwx。如果我们看/etc/shadow文件的话,本身权限是“---------”,但是root用户登录的情况下我们使用上面的命令去查询这个文件是否有rwx权限,则会获得返回值0.也就是说我们有权限修改。原因无他,只因为我们是root用户!!!!
我们可以加上&&符号上面的操作一步完成,后面加上的echo“yes”代表如果前面的命令成立的话,则返回“yes” 【 -d/wang 】&& echo“yes” 返回yes
整数值比较 【 整数1 操作符 整数2 】 -eq: 等于 equal “=“ -ne: 不等于 not equal “≠“ -gt: 大于 greater than “>“ -lt: 小于 lesser than “<“ -ge: 大于等于 greater or equal “≥“ -le: 小于等于 lesser or equal “≤“
使用案例:::
显示效果和上面一样!!!
字符串的比较 字符和字符串
If判断语句 If条件测试操作 Then命令序列 Fi 尝试:让用户输入一个数字,与变量ram