shell脚本简单命令

shell脚本

脚本就是可运行代码的集合,脚本语言(计算机语言)脚本的特点:从上到下,按行执行。

python 脚本语言 格式更严谨 严格的执行锁进。也是从上到下按行执行。

shell脚本就是在shell环境(/bin/bash)bash就是shell的解释器。linux环境下的编程语句。

自动化运维。可重复执行的,自动化的在系统中实现增删改查的操作。

shell的解释器,默认就是bash

sh:已经淘汰

bash:sh的扩展版

csh:类c语言

tcsh:整合了c语言的shell

nologin:用户无法登陆到系统的shell

shell的作用:

1、自动化运维

2、批量化的重复操作以及配合定时任务执行。

3、有了脚本就可以减轻管理员的工作量

4、避免配置出错。

5、提高处理批量文件的速度

shell脚本的构成:

复制代码
[root@localhost ~]# cd /opt
[root@localhost opt]# vim test.sh
#!/bin/bash
#声明shell的解释器这一行可以不写,默认就是bash. /python expect,只要不是默认shell,其他的都是声明解释器
#被注释掉的部分是不会被执行的,步骤的含义。
#可执行语句:
#this is my first shell
cd /boot
echo "当前的目录位置:"
#echo的作用就是打印
pwd
echo"展示其中以vml开头的文件:"
ls -lh vml *

第一行:声明解释器(默认就是bash,可以不写)

注释:以#开头,就是注释的信息,注释的部分不会被执行。

可执行语句:linux的命令都可以作为可执行语句,一行一行的往下写。一行就是一个可执行的语句。

shell的运行方式:

3种:

第一种:不给脚本执行权限的执行方式:

sh:就是在当前的shell里生成一个子shell,运行的结果不改变父shell的环境。

source:点命令,他会改变当前shell的环境,也就是真正的执行代码。

bash:就是在当前的shell里生成一个子shell,运行的结果不改变父shell的环境。

第二种:赋权执行

脚本调试完毕,都是赋权执行。

chmod 777 test.sh

复制代码
#执行语句
./test.sh 
​
/opt/test.sh 
​
source /opt/test.sh 

重定向操作:

标准输入

标准输出

复制代码
[root@localhost opt]# ls
jenkins-2.396-1.1.noarch.rpm  test.sh

标准错误输出

复制代码
[root@localhost opt]# llll
bash: llll: 未找到命令...

重定向输出:> >>

"> 标准输出的结果保存到指定的文件,而且还会覆盖文件原有的内容"

">> 标准输出的结果保存到文件原有的内容的尾部追加,不会覆盖原有的内容"

2> 2>> (标准错误输出的结果,保存到指定的文件)

&> &>> (混合输出,既可以保存标准输出,也可以保存错误输出)

重定向输入:< 从指定的文件获取数据。

变量的作用和类型,如何声明变量。

变量的作用:用来存放系统和用户需要使用的设定的参数(值),变量保存在内存中。调用的时候,直接到内存当中查找变量所在的内存地址。

变量的类型:

自定义变量:

自定义变量 名称由用户自己定义 值也可以自定义

变量名的规范:

1、不要使用系统的命令作为变量名

2、不要使用中文

3、不要使用特殊符号开头,可以用下划线开头,不要使用数字开头

4、变量名我们一般会使用对应的英文名称来使用

5、变量名要保持前后一致,要有注释。提高代码的可读性。

变量值:int(整数类型) string(字符串)浮点 布尔:(true false)

双引号,单引号,反撇号之间的作用和区别:

弱引用和强引用

双引号,就是弱引用,变量值就是变量值本身

单引号,强引用,变量值不再是本身定义的值,保持自身的字符串形式

反撇号,命令替换,把命令的执行结果传给变量,作为变量的值,先执行命令,再给变量赋值。

自定义输入变量的值

复制代码
#自定义输入变量的值
read -p "请输入一个整数:" a
read -p "请输入一个整数:" b
c=$(($a+$b))
d=$(($a*$b))
echo $c
echo $d
​
#-p 指定提示符,提示符的内容包含在""中间,""可以为空,但是
必须要有

全局变量:

全局变量 对整个系统生效,所有用户都可以使用

全局生效,每个脚本的变量值,固定的。

持久性

共享性

全局变量适用于不需要经常更改的值。

排错的方法

bash -x 脚本名 (会把每一步都打印出来,这样方便定位每一步错误)

环境变量

环境变量 环境变量是系统创建的,用来设置用户的工作环境。

环境变量可以理解为特殊的全局变量,/etc/profile配置文件。

env查看所有的环境变量

root@localhost \~\]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 可执行的命令,或者可执行的程序的默认路径。 ![](https://img-blog.csdnimg.cn/direct/73921dcf106441c29a76f7c349b3b716.png) #### 位置变量 位置变量,又叫做命令行参数,是在脚本的外面给脚本内部传值。 $1 $2 $3 $4......$9 从第一个到第九个 10以后要用()把数字括起来 $(10) #### 预定义变量: 预定义变量:编程语言和解释器提供的,用户无法更改。只能由系统自行更新和设备。 $\*和$@:表示命令或者脚本需要处理的参数。二者的区别在于区别处理方式的不同。 $\*和$@不加引号的表现一致,都是把参数一个一个处理。 $\*加了引号,会把参数当成一个整体来进行处理。 $#:也是一个全局变量,统计传递给脚本或者函数的参数个数 **$?:true false 命令执行之后返回的状态码,** 只有0,表示成功 true 所有非0,都表示失败 false 返回上一次执行命令的状态 ![](https://img-blog.csdnimg.cn/direct/111320ad6fa443c3ac5052f6ed3be699.png) ![](https://img-blog.csdnimg.cn/direct/492772cf023f4d1080ca6e134189e4e1.png) ![](https://img-blog.csdnimg.cn/direct/11b50b95dfcc44d293bd6a6208b25c2f.png) 小数运算:bc是一个简易的系统自带的计算机程序,可以执行整数,也可以计算小数。 ![](https://img-blog.csdnimg.cn/direct/6f308beb1dd342ee8b5ced1a7ab5de31.png) ![](https://img-blog.csdnimg.cn/direct/aa8b7c90d29e4619b62f717436cce5c5.png) i++:先赋值再加1 ++i:先加1再赋值

相关推荐
落日漫游1 天前
K8s核心组件全解析
运维·docker·运维开发
菜菜子爱学习3 天前
Nginx学习笔记(八)—— Nginx缓存集成
笔记·学习·nginx·缓存·运维开发
菜菜子爱学习4 天前
Nginx学习笔记(七)——Nginx负载均衡
笔记·学习·nginx·负载均衡·运维开发
菜菜子爱学习5 天前
Nginx学习笔记(二)——环境准备(VMware CentOS版)
笔记·学习·nginx·centos·运维开发
菜菜子爱学习6 天前
Nginx学习笔记(三)——在 CentOS 7 中配置阿里云镜像源
笔记·学习·nginx·centos·运维开发·vmware
归仁13 天前
ubuntu 镜像克隆
运维开发
我命由我1234514 天前
Windows 操作系统 - Windows 设置始终使用 Windows 照片查看器打开图片
运维·windows·经验分享·笔记·学习·操作系统·运维开发
kyle~21 天前
Windows---动态链接库Dynamic Link Library(.dll)
运维·windows·操作系统·运维开发·开发部署
zpf_叶绿体学编程22 天前
部署上线你的项目
运维开发
半梦半醒*22 天前
Linux网络管理
linux·运维·网络·centos·运维开发