从0开始的云计算:shell脚本基础

shell的类型 :

/bin/sh 已淘汰

/bin/bash 现在常用的也是Linux的默认shell 管理员

/usr/bin/sh

/usr/bin/bash 现在常用的也是Linux的默认shell 普通用户

默认使用的shell就是bash

查看用户使用的shell  /etc/passwd

shell脚本:脚本语言:扩建语言,动态语言,也是编程语言的一种,主要用来控制软件应用程序

都是以文本形式保存,只要在被调用的时候,文本代码才会被解释或者编译,执行

创建脚本的默认格式:.sh 结尾

shell脚本的作用:

1 自动化运维(配合定时任务执行)

2 批量化重复操作可以通过脚本执行,减少人工的重复输入

3 减轻了管理员的工作量

4 提高了处理文件的速度

5 避免配置出错

脚本当中的执行顺序是从上到下,依次按行执行

shell脚本的构成:

1 申明解释器

2 #表示注释。注释掉的代码不会被执行,而且是按行进行注释

3 脚本当中的语句,Linux的可执行命令都可以作为shell脚本的语句

4 脚本当中的语句按照从上到下,依次按行执行

shell的执行方式:

1 赋权执行 执行权限

2 不赋权执行 (脚本调试)

不赋权:

sh脚本名

source脚本名

source命令:点命令 。

对于刚刚修改的文件进行初始化操作(文件的内容都是shell语句,都是可执行的命令)执行source可以不需要重启,使更改内容直接生效

sh:只在当前环境运行,并不涉及子shell环境切换

source 新建一个shell,继续执行。而且所有的执行结果都会保存在这个shell里面

赋权执行:

chmod 777

在当前目录执行./first.sh

不在当前目录要以绝对路径来写/opt/first.sh

不要放在家目录,最好在opt目录当中

结合定时任务执行,必须要绝对路径

重定向:

echo 123 > 123

重定向输出:将标准输出的内容保存到指定的文件,覆盖文件当中的原有内容“>””>>”也是重定向输出,在文件内容的尾部追加,不覆盖文件的原有内容

变量

怎么在shell脚本中定义变量,以及shell脚本的变量类型shell的运算符

变量:面向对象,对象的名称 对象的属性

名称:变量名

属性:变量的值,对象的描述信息

变量的属性:值得类型

int:整数类型

string:字符串类型

布尔:true false 真或假

浮点:1.2 3.4 5.6

变量名=属性值

打印变量值

变量的命令规范(自定义变量)

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

2 不要使用中文

3 不要使用特殊符号作为变量名称的开头 可以使用_作为变量的开头

4 默认规则:学生student

5 默认加上注释的,变量名的引用保持前后一致。

自定义变量

在自定义变量中:整数可以不加“”,字符串类型最好加上“”避免歧义

在给变量赋值时,单引号双引号一样,不影响变量的值

``:命令替换,先执行反撇号当中的命令,然后再把命令执行的结果赋值给变量

打印变量是,引号的作用 这里不涉及反撇号

打印变量双引号和单引号机制不同

echo “$a”弱引用,原变量的值不变

echo ‘$a’ 强引用,变量值将不在引用,就是$a这个字符串

echo “$a”

“${a}”:保证一定能够正确的识别变量值

变量赋值:

a=1  b=2

read命令的方式获取变量

read -p “提示信息”变量名(给变量名赋值)

变量的作用范围:

默认情况,新定义的变量只在当前的shell环境中生效

全局变量:在整个环境中都能生效

export 变量名=变量值

需要在一整套环境当中引号唯一且不需要变化的变量时,才会声明全局变量

在/etc/profile

环境变量:

系统提前创建,用户也可以添加,设置用户的工作环境,配置系统行为,控制程序执行

特殊的全局变量

用户级环境变量:

只对当前用户可见

预定义环境变量:系统预设,所有可以都见,相当于全局变量

自定义的环境变量:特殊的全局变量,只对设置用户有效

$USER 显示用户的名称

$HOME 用户的家目录

$PWD 表示当前所在的工作目录

$PATH 可执行用户程序的默认路径

位置变量:也叫命令行参数,在脚本或者程序运行时,传递个他们的值,而且位置变量在脚本外部传递变量值。

预定义变量:

编程语言或者脚本解释器提供的,不能修改的。只能更具需要进行自动设置或者更新。

$*和$@   表示命令或者脚本需要处理的参数

$* 和 $@ 不加””的时候表现一致,都会把参数分行处理

$* 加“” 会把命令当做一行处理

$# 显示需要处理的参数个数

$? 表示前一条命令或者脚本执行之后的返回状态码,只有返回0表示执行成功,所有非0全部表示执行失败。也可以用在函数中作为return的返回值

一些运算的格式:

c=$((1+1))

let c=12*5

shell脚本中整数的运算方式:+ - * / %

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值