shell编程

一、shell是什么?

shell是一种命令解释器,用于接收应用程序或用户的命令然后调用给操作系统内核 也是功能强大的编程语言
Alt

二、解释器有哪些?

查看shell cat /etc/shells
在这里插入图片描述

默认解释器是bash
查看所在的shell echo $SHELL
在这里插入图片描述

切换shell chsh -s /bin/sh
在这里插入图片描述

三、shell脚本格式

#! /bin/bash --指定路径

3.1常用执行方式

3.1.1通过bash命令直接执行

bash +/路径
在这里插入图片描述

3.1.2执行权限+x,sh或./

在这里插入图片描述
在这里插入图片描述

3.1.3第一个shell脚本:helloworld

#! /bin/bash
echo "hello world"

3.1.4第二个shell脚本:多命令处理

#! /bin/bash
touch /home/test/1.txt 
echo "hello world" >> 1.txt   #创建文件并写内容

四、shell中的变量

系统(环境)变量 $HOME $USER $PWD --作用于整个操作系统或用户 在etc/profile文件中定义

4.1~ /.bashrc目录下为用户下的变量

加入用户环境变量(export)

#.bashrc
export TEST_A=10

最后加载文件

4.2自定义变量(普通变量)

普通变量:作用域是当前的shell(当前的解释器)

4.2.1基本语法

(1)定义变量:变量=值
(2)撤消变量:unset变量
(3)声明静态变量:readonly变量,不能unset
(4)空格代表一句话结束

4.2.2变量定义规则

(1)变量名称可以由字母、数字、下划线组成,但不能数字开头,环境变量建议大写
(2)等号两侧不能有空格
(3)如果有空格需要用单引号或双引号括起来
配置文件中是永久变量,命令行加入的是临时变量
普通变量:用户登录后打开一个bash,打开脚本后又是另一个bash
举例:

[root@localhost test]# C=30
[root@localhost test]# echo $C
30                             #定义变量C
[root@localhost test]# vi test 

#! /bin/bash
A=10
B="hello world" 

echo $A
echo $B
echo $C
                       #输出变量C  
[root@localhost test]# bash test 
10
hello world

                              #无数值输出     

临时的用户环境变量只作用于当前变量和其子变量

4.3特殊变量

4.3.1:$n

$n:n为数字,$0代表脚本名字,$1- 9 代表参数,十个以上的参数需要用大括号包含如 9代表参数,十个以上的参数需要用大括号包含如 9代表参数,十个以上的参数需要用大括号包含如{10}

#! /bin/bash

#传参
echo $1
echo $2
echo $3

[root@localhost test]# bash test 1 2 3
1
2
3

4.3.2:$#

输出变量的个数

#! /bin/bash
echo $#
#传参
echo $1
echo $2
echo $3
[root@localhost test]# bash test 123
1                                      #输出参数赋值的个数
123

 

4.3.3$?

判断上一个命令是否执行成功
举例:

[root@localhost test]# cat /etc/passwds
cat: /etc/passwds: No such file or directory
[root@localhost test]# echo $?
1                             #1不为0代表没有执行成功

五、数字运算和条件

1.基本语法
(1) ( ( 运算式 ) ) 或 ((运算式))或 ((运算式))[ 运算式]
(2)expr +,-,*,%,加,减,乘,除,取余
注意:expr运算符之间有空格
计算3+2的值

[root@localhost test]# expr 3 + 2
5

2.案例
计算(2+3)x4的值

[root@localhost test]# expr `expr 2 + 3` \* 4
20

shell脚本

#! /bin/bash
A=2
B=3
D=$((A +B))
echo $D

D=$[A+B]
echo $D

#综合运算
D=$[(2+3)*5]
echo $D

#运行

[root@localhost test]# bash test数字运算 
5
5
25

六、条件判断

1.基础语法
[ conditon ]condition前后有空格 条件非空即为ture
2.常用判断条件
(1)两个整数之间比较
= 字符串比较
-lt 小于 (less than) -le 小于等于(less equal)
-eq 等于 (equal) -gt 大于等于 (greater than)
-ge 大于等于(greater equal) -ne不等于(Not equal)
(2)按照文件权限判断
-r 有读的权限(read)-w有写的权限(write)
-x 有执行的权限(execute)
(3)按照文件类型进行判断
-f文件存在并且是一个常规的文件(file)
-e 文件存在(existence)
-d 文件存在并是一个目录(directory)
3.案例实操

#! /bin/bash 
[ $# -gt 2 ] && echo"参数的个数大于2"
#[ $# -le 2 ] || echo "参数个数大于2"

运行脚本赋值结果如下

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值