[TOC]
八、shell语言
1、简单的shell
代码规范:
#!/bin/bash
文件命名规范:文件名.sh
使用流程:
- 创建shell文件
touch/vim
- 编写shell代码
- 执行shell脚本
必须有执行权限
#!/bin/bash/
echo "HelloWorld"
注意 :输出的内容如果包含字母和符号,需要用引号包括起来,如果是存数字,可以用引号,也可以不包括
如果一行有多个命令的话,才需要加 ;
多行的话可以不用加;
执行的时候要写脚本的路径./HelloWorld.sh
另一种执行方式/bin/bash HelloWorld.sh
2、变量
定义: class_name= “yunwei”
使用: echo $class_name
变量名后年的等号左右不能有空格
输出变量的时候,可以用双引号识别,但是不能够用单引号l。单引号就会当成字符串输出单引号不能转移
在脚本中需要执行一些指令,将指令结果赋给变量的时候,要使用\
(反引号)
dt=`date "+%Y-%m-%d"`
echo $dt
只读变量:
a=10
readonly a# 申明只读
a=20
echo $a
# 输出10
接受用户输入
read -p 提示信息 变量名
read -p '请输入需要创建的文件路径: ' filepath
touch $filepath
echo “文件创建成功"
ls -l $filepath
删除变量
unset 变量
b=20
echo $b
unset b
echo $b
# 输出 20和空行
3、条件判断语句
if condition1
then
command1
elif condition2
then
command2
else
command3
fi
4、运算符
1)算数运算符
shell不支持数学运算的,通过内置的expr来进行数学判断
运算符 | 说明 | 举例 |
---|---|---|
+ | 加 | expr $a +$b 30 |
— | 减 |
expr $a - $b 10 |
* | 乘 |
expr $a +$b 30 |
/ | 除 |
expr $a +$b 30 |
% | 取余 |
expr $a +$b 30 |
= | 赋值 |
expr $a +$b 30 |
== | 判断相等 |
expr $a +$b 30 |
!= | 不等 |
expr $a +$b 30 |
expr `$a-$b`
#!/bin/bash
a=10
b=20
echo "a=$a"
echo "b=$b"
echo ""
echo "a+b = " `expr $a+ $b`
echo "a-b = " `expr $a - $b`
echo "a*b = " `expr $a \* $b`
echo "b/a = " `expr $b / $a`
echo "b%a = " `expr $b % $a`
if [ $a == $b ]
then
echo "a 等于 b "
else
echo "a 不等于 b"
fi
if [ $a != $b ]
then
echo "a 不等于 b "
else
echo "a 等于 b"
fi
2)关系运算符
必须是数字或者是数字的字符串
运算符 | 说明 | 举例 |
---|---|---|
-eq | 两个数是否相等,相等返回true | [$a -eq $b] |
-ne | 两个数是否不等,不等返回true | [$a -ne $b] |
-gt | 左边大于右边 | [$a -gt $b] |
-lt | 左边小于右边 | [$a -lt $b] |
-ge | 大于等于 | [$a -ge $b] |
-le | 小于等于 | [$a -le $b] |
if [$a -eq $b ]
then
echo "a==b"
else
echo "a!=b"
fi
if [$a -ne $b ]
then
echo "a!=b"
else
echo "a==b"
fi
if [$a -gt $b ]
then
echo "a>b"
else
echo "a<=b"
fi
if [$a -lt $b ]
then
echo "a<b"
else
echo "a>=b"
fi
if [$a -ge $b ]
then
echo "a>=b"
else
echo "a<b"
fi
if [$a -le $b ]
then
echo "a<=b"
else
echo "a>b"
fi
3)逻辑运算符
运算符 | 说明 | 举例 |
---|---|---|
! | 非运算 | ·[ !false ]
|
-o | 或运算 | [ $a lt 20 -o $b -gt 100] |
-a | 与运算 | [ $a -lt 20 -a $b -gt 100 ] |
4)字符串运算符
运算符 | 说明 | 举例 |
---|---|---|
= | 非运算 | |
!= | 或运算 | |
-z | 字符串是否为空,空返回true |
[ -z $a ] false |
-n | 判断长度不为0 返回true |
[ -n $a ] true |
str | 判断是否为空的字符串 |
[ $a ] true |
5)文件测试运算符
操作符 | 说明 | 举例 |
---|---|---|
-b file | 检查是不是块设备 | [ -b $file ] |
-c file | 检测是不是字符设备文件 | [ -c $file ] |
-d file | 检测文件是不是目录 | [ -d $file ] |
-r | 读 权限判断,有一个部分符合,就认为是有权限的 | |
-w | 写 | |
-x | 执行 | |
-s | 文件大小,不为空返回true | |
-e file | 文件存在,存在就返回true |
5、附带选项
-
参数处理
用户调用传入参数
#系统调用的时候,传入参数 ./test.sh a b c #接受:脚本中可以用"$1"来表示第一个参数也就是 a "$2"表示b
-
别名
- 写一个自己的shell脚本
-
vim ~/.bashrc
写别名 - 可以直接使用别名了
-
安装文件
wget url
网友评论