Shell常用命令汇总
概述
Shell是一个命令行解释器、接收应用程序/用户命令、之后调用操作系统内核
Linux提供的Shell解析器有
[amrcloud@Hadoop101 /]$ cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
bash 和 sh 的关系
[amrcloud@Hadoop101 /]$ ls -l /bin/ | grep bash
-rwxr-xr-x. 1 root root 964536 4月 1 2020 bash
lrwxrwxrwx. 1 root root 10 6月 1 19:03 bashbug -> bashbug-64
-rwxr-xr-x. 1 root root 6964 4月 1 2020 bashbug-64
lrwxrwxrwx. 1 root root 4 6月 1 19:03 sh -> bash
执行脚本 .sh 脚本通过bash命令进行
查看Centos默认的解析器
[amrcloud@Hadoop101 /]$ echo $SHELL
/bin/bash
Shell脚本入门
指定执行脚本的执行器
#!/bin/bash
#!/bin/sh
自定义变量
规则
(1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量
名建议大写。
(2)等号两侧不能有空格
(3)在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。
(4)变量的值如果有空格,需要使用双引号或单引号括起来。
特殊变量
$n $1 - $9 代表的是第一到第九个参数,十以上的参数需要用{}括起来{$10}
提示:没有$0这个参数、写了也不会生效
∗ 变量代表命令行中所有的参数, * 变量代表命令行中所有的参数, ∗变量代表命令行中所有的参数,*把所有的参数看成一个整体
@ 变量也代表命令行中所有的参数,不过 @ 变量也代表命令行中所有的参数,不过 @变量也代表命令行中所有的参数,不过@把每个参数区分对待
echo $? 查看上一条指令是否正常运行
条件判断
常用判断
-eq 等于 =
-ne 不等于 <>
-lt 小于 <
-le 小于等于 <=
-gt 大于 >
-ge >=
= 判断相等
!= 判断不等
流程控制
if判断
单分支
if [ 条件判断 ];then
程序
fi
if [ 条件判断 ]
then
程序
fi
多分支
if [ 条件判断 ]
then
程序
elif [ 条件判断 ]
then
程序
else
程序
fi
实现
#!/bin/bash
if [ $1 -eq 1 ]
then
echo '6666'
elif [ $1 -eq 2 ]
then
echo '999'
fi
Case语句
基本语法
case $变量名 in
"值1")
如果变量的值等于1、执行
;;
"值2")
如果变量的值等于2、执行
;;
esac
实现
#!/bin/bash
case $1 in
"1")
echo '666'
;;
"2")
echo '777'
;;
"3")
echo '888'
;;
esac
For循环
基本语法
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
实现
#!/bin/bash
for i in aa bb cc
do
echo "$i"
done
While循环
基本判断
while [ 条件判断式 ]
do
程序
done
实现
#!/bin/bash
sum=0
i=1
while [ $i -le 100 ]
do
sum=$[$sum + $i]
i=$[$i + 1]
done
echo $sum