Linux Shell基础(变量赋值、运算、位置变量、数组)

shell的作用----命令解释器 “翻译官”

介于系统内核与用户之间,负责解释命令行

Linux Shell基础(变量赋值、运算、位置变量、数组)_第1张图片

 

用户的登录shell

登录后默认使用的Shell程序 一般为/bin/bash

不同Shell的内部指令、运行环境等会有所区别

 

编写脚本代码

使用vi文本编辑器

每一行一条Linux命令 按执行顺序依次编写

 

执行脚本文件

方法一:脚本文件路径(必须有x权限)  ./first.sh

方法二:sh脚本文件路径 sh /first.sh

方法三:source脚本文件路径 source /first.sh

 

更完善的脚本构成

脚本声明  #!/bin/bash

注释信息

可执行语句

 

交互式硬件设备

标准输入:从该设备接收用户输入的数据

标准输出:通过该设备向用户输出数据

标准错误:通过该设备报告执行出错信息

 

类型

设备文件

文件描述编号

默认设备

标准输入

/dev/stdin

0

键盘

标准输出

/dev/stdout

1

显示器

标准错误输出

/dev/stderr

2

显示器

 

重定向操作

类型

操作符

用途

重定向输入

<

从指定的文件读取数据 而不是从键盘输入

重定向输出

>

将输出结果保存到指定的文件(覆盖原有内容)

>>

将输出结果追加到指定的文件

标准错误输出

2>

将错误信息保存到指定的文件(覆盖原有内容)

2>>

将错误信息追加到指定的文件中

混合输出

&>

将标准输出、标准错误的内容保存到同一个文件中

 

重定向输出

Linux Shell基础(变量赋值、运算、位置变量、数组)_第2张图片

 

标准错误输出 重定向输出不可用

Linux Shell基础(变量赋值、运算、位置变量、数组)_第3张图片

 

混合输出

 

管道操作符号“|”

将左侧的命令输出结果,作为右侧命令的处理对象

格式 cmd1 | cmd2 [... | cmdn]

 

awk -F:     以冒号作为分隔符

 

Shell变量的作用

为灵活管理Linux系统提供特定参数

变量名  使用固定的名称 由系统预设成用户定义

变量值  能够根据用户设置、系统环境的变化而变化

 

变量的类型

自定义变量 由用户自己定义、修改和使用

环境变量 由系统维护 用于设置工作环境

位置变量 通过命令行给脚本程序传递参数

预定义变量 Bash中内置的一类变量 不能直接修改

 

自定义变量

定义一个新的变量

格式:变量名=变量值

变量名以字母或下划线开头 区分大小写 建议全大写

查看变量的值

格式 echo $变量名

 

对变量进行赋值 Linux的Shell只能赋值的是整数

Linux Shell基础(变量赋值、运算、位置变量、数组)_第4张图片

Linux Shell基础(变量赋值、运算、位置变量、数组)_第5张图片

 

赋值时使用引号

双引号 允许通过$符号引用其他变量值

单引号 禁止引用其他变量值 $视为普通字符

反撇号 命令替换 提取命令执行后的输出结果

 

从键盘输入内容为变量赋值

read [-p  “提示信息”] 变量名

Linux Shell基础(变量赋值、运算、位置变量、数组)_第6张图片

Linux Shell基础(变量赋值、运算、位置变量、数组)_第7张图片

 

设置变量的作用范围(两个格式可以混合使用)

格式1:export 变量名 ...

格式2:export 变量名=变量值 ...

 

父程序导出为全局变量 子程序引用全局变量

Linux Shell基础(变量赋值、运算、位置变量、数组)_第8张图片

 

整数变量的运算

expr 变量1 运算符 变量2 [运算符 变量3]...

 

常用运算符

加法运算  +

减法运算  -

乘法运算  \*

除法运算  /

求模(取余)运算 %

 

Linux Shell基础(变量赋值、运算、位置变量、数组)_第9张图片

Linux Shell基础(变量赋值、运算、位置变量、数组)_第10张图片

 

环境变量

由系统提前创建 用来设置用户的工作环境

配置文件 /etc/profile  ~/.bash_profile

 

常见的环境变量

PWD、PATH(命令的搜索路径)

USER、SHELL、HOME

Linux Shell基础(变量赋值、运算、位置变量、数组)_第11张图片

 

位置变量

表示为$n n为1-9之间的数字

 

数组 定义数组

显示所有数组成员

 

显示数组中的某一成员

 

显示数组长度

 

显示数组成员的长度

 

预定义变量

$# 命令行中位置变量的个数

$* 所有位置变量的内容

$? 上一条命令执行后返回的状态 当返回状态值为0 表示执行正常 非0为异常或出错

$0 当前执行的进程/程序名

 

$?的用法

Linux Shell基础(变量赋值、运算、位置变量、数组)_第12张图片

为0时正常 非0时表示异常

你可能感兴趣的:(Linux基础)