shell脚本基础

shell脚本基础

脚本:可以实现某种功能的文本文件,并且可运行。(命令的堆积)
脚本组成
#!环境声明(sha-bang)(声明一个解释器)
#注释脚本(英文)
可执行代码
 /dev/null:垃圾回收机制(黑洞设备)
变量:以不变的名称存放可能变化的值
变量名=变量值
定义/赋值变量
若指定的变量已存在,相当于为此变量重新赋值
等号两边不要有空格
变量名由字母/数字/下划线/组成。区分大小写
变量名不能以数字开头,不能使用关键字和特殊符号
  为变量赋值:
       变量名=值
    read  为变量赋值,读入用户在键盘上的输入,将用户在键盘上的输入赋值给变量
查看/引用变量
基本格式
引用变量值:$变量名
查看变量值: echo  $变量名        echo  $a
echo  ${变量名}常量   echo ${a}7 (区分变量与常量的值)
echo  $[运算式]  echo  $[1+1] 代表运算
echo  $()     将输出结果作为参数  
echo  ``          mkdir mariadb-`date  +%F   将输出结果作为参数

echo  ''   屏蔽特殊符号


环境变量 由系统直接自定义完成,赋值完成  
常见变量
which  命令字     查找命令程序存在娜
USER:当前登陆系统身份
位置变量 执行脚本的时候提供命令行参数(传递参数)
表示为$n,n为序列号
$0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$......
预定义变量 用来保存脚本程序的执行信息
$# 已加载位置变量的个数(计算位置变量使用的次数)echo $#(vim)
$*    所有输出的位置变量 echo $*(vim)
$? 程序退出后的状态值,0表示正常,其他值异常 echo $0(命令行)
自定义变量 用户自定义设置,修改及使用

生成随机数    $RANDOM
求余运算:余数一定小于被除数


条件测试及选择
检查文件状态
-e:存在为真
-d:存在且为目录,才为真
-f:存在且为文件,才为真
-r:存在且对文件有读权限,才为真
-w:存在且对文件有写权限,才为真
-x:存在且对文件有执行权限,才为真
格式:[空格选项空格参数空格]
[   -e   /etc   ]    echo  $?  判断
比较整数大小(带g都有大于,带e都有等于,带l都有小于)
-gt 大于
-ge 大于等于
-eq 等于
-ne 不等于
-lt 小于
-le 小于等于
格式:[    1   -ep  1]         echo  $?   判断(可以是位置变量)
[root@server0 ~]# [ $a -gt $b ]
[root@server0 ~]# echo  $?
1


字符串比对
== 字符串一致为真
!= 字符串不一致为真
格式:[root@server0 ~]# [ $USER ==  root  ]
[root@server0 ~]# echo  $?
0


if选择结构
单分支:当条件满足时,作判断处理
格式:
if [条件判断]; then
判断语句1
#!/bin/bash
read  -p '请输入你要测试的IP' id
ping -c 4  $id  &>  /dev/null
if  [  $?  -eq 0 ];then
echo ok
else
echo  bye-bye
fi


双分支:当条件满足/不满足时,分别作判断处理
格式:
if [条件判断]; then
判断语句1
else
判断语句2
fi
多分支:判断条件1,或条件2,都不满足时,往下判断处理
#!/bin/bash
num1=$[$RANDOM%3]
read -p '请输入[0-3]之间的数字:'  num2
if [ $num1 -eq  $num2 ];then
echo 恭喜你猜对了
exit
elif [ $num2 -gt $num1 ];then
echo 你猜大了
else
echo 再来一次
fi


列表示循环
for循环结构
for循环处理
遍历循环列表:根据变量的不同取值,重复执行列表
格式:for  变量名  in  列表值
do
命令序列
done:
#!/bin/bash
for a in 007  9527  dc
do
useradd $a
echo  $a创建成功
done
变量a参与循环,变量a影响循环的结果


管道传递
• 使用 | 管道操作
– 将前一条命令的标准输出交给后一条命令处理




重定向输出
   > : 只收集前面命令的正确输出
    2> : 只收集前面命令的错误输出
  &> : 前面命令正确与错误输出
[root@room8pc205 桌面]# cat /etc/ /etc/passwd > /opt/1.txt     可以多重查看     一个大于号   正确信息的定向
                           查看   etc  etc下的文件   正确信息导入    文件夹   
分为错误信息和正确性信息    一起显示在桌面
正确信息
cat: /etc/: 是一个目录                                                                              报错信息
[root@room8pc205 桌面]# cat /etc/ /etc/passwd 2> /opt/2.txt    可以多重查看     2>号           错误信息的定向
                           查看   etc  etc下的文件   错误信息导入    文件夹  
[root@room8pc205 桌面]# cat /opt/2.txt                         查看文件夹2
cat: /etc/: 是一个目录
[root@room8pc205 桌面]# cat /opt/1.txt                         查看文件夹1
正确信息--------
&>                                                                                                                正确和错误都导入一个文件夹
2>>                                                                                                              错误信息的追加重定向




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值