Shell脚本基本编辑规范及变量

1.Shell脚本概述?

     答:Shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

1.1Bash(/bin/bash)是目前大多数 Linux 版本采用的认 Shell。

1.2 不同shell的内部指令、运行环境会有区别。

2.shell脚本应用场景

1.重复性操作
2.交互性任务
3.批量事务处理
4.服务运行状态监控
5.定时任务执行

3.Shell脚本的编写

3.1使用vim文本编辑器
3.2编写时,每条linux命令按照执行顺序依次编写(每条命令独占一行)

示例:
vim /root/first.sh        #编辑一个脚本文件,一般脚本文件都以“.sh”结尾,方便辨别

 

如果要重新开机使文件还在并且不限路径去读取把文件加入在、/etc/profile

 

vim /etc/profile

 export PATH=$PATH:/etc/name.sh     #把文件加入到配置文件路径当中

 

4.重定向与管道操作

交互式硬件设备
标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息

5. 重定向操作

 

面试题:如何把两个文件合并成一个文件

                   cat file1 file2 >123.txt

                  如何判断文件执行是否异常?

                   输入echo $? 如果返回值为0,无异常如果返回值为2表示异常

                 

 

6.Shell变量的作用、类型

用来存放系统和用户需要使用的特定参数(值)
变量名:使用固定的名称,由系统预设或用户定义
变量值:能够根据用户设置、系统环境的变化而变化

7.变量的分类

1.自定义变量:由用户自己定义、修改和使用
2.环境变量:由系统维护,用于设置工作环境
3.只读变量:用于变量值不允许被修改的情况
4.位置变量:通过命令行给脚本程序传递参数
5.预定义变量:bash中内置的一类变量,不能

8.赋值时使用引号

双引号:允许通过$符号引用其他变量值,直接调用变量
单引号:禁止引用其他变量值, $视为普通字符,只会认为是字符
反撇号:命令替换,提取命令执行后的输出结果,``和$( )作用相同
{}可以从键盘输入内容为变量赋值分隔变量值

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

   read命令获取输入内容

方法一:
read -p "提示信息" 变量名
echo $变量名

在脚本中编写,在命令行实现read获取

10. 变量作用范围

10.1   认情况下,新定义的变量只在当前的Shell环境中有效,因此称为局部变量。当进入子程序或新的子Shell环境时,局部变量将无法再使用。
10.2   可以通过内部命令export将指定的变量导出为全局变量,使用户定义的变量在所有的子Shell环境中能够继续使用。

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

把脚本文件加入到vim  /etc/profile中就可实现在全局应用不会限制在某一目录下

11.整数变量的运算

       11.1 格式:expr 变量1 运算符 变量2 [运算符 变量3]
 
     11.2 常用运算符:  

+     加法


-     减法


\*    乘法


/     除法              # 常用运算符


%     取余

i=$(expr 12 \* 5)               #单括号expr配合算法 中间要有空格


i=$((10 * 5))                   #双括号配合算法=中括号  中间空格可有可无


i=$[10 * 4]


let i=10*3                     # let 配合算法     中间可直接连接不用括号



i++ 相当于 i=$[$i+1]


i-- 相当于 i=$[$i-1]


i+=2 相当于 i=$[$i+2]

 

 

 

12.浮点数的运算

      12.1     bc命令,是一种精密运算工具,支持浮点数运算,当然整数运算也是支持的。
      12.2     awk命令

 

  13.特殊shall变量

        13.1 环境变量

            1. 使用 env 命令可以查看到当前工作环境下的环境变量

             2.常用变量

USER  表示用户名称

HOME  表示用户的宿主目录

LANG  表示语言和字符集

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

PATH  表示可执行程序的搜索路径

PATH   路径环境变量

echo $PATH                          #查看当前搜索路径
PATH="$PATH:/root"               #将/root目录添加搜索路径
export PATH="$PATH:/root"    #输出为全局环境变量

 

 

13.2 只读变量

1.用于变量值不允许被修改的情况
2.readonly 命令设置只读变量   但不能被删除unset用于删除变量但无法删除只读变量只能通过重启解决

 readonly Product    #设置为只读变量

 13.3位置变量

1.  当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

2.   $n:n为数字,$0代表命令本身,1~9代表第一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为 ${10}

      #!/bin/bash
echo $1
echo $2
echo $1 + $2

 13.4 预定义变量

 

$*、$@:表示命令或脚本要处理的参数。

$*:把所有参数看成以空格分隔的一个字符串整体,代表"$1 $2 $3 $4"。

$@:把各个参数加上双引号分隔成n份的参数列表,每个参数是独立  的,代表"$1" "$2" "$3" "$4"。

$0:表示当前执行的脚本或命令的名称。

$#:表示命令或脚本要处理的参数的个数。	

$?:表示前一条命令或脚本执行后的返回状态码,返回值为0表示执行正确,返回任何非0值均表示执行出现异常。

 

 

 date命令用法

语法:date [选项] 显示时间格式(以“+”开头,后面接时间格式参数)
选项: -d STRING 显示STRING中指定的时间,而非系统时间。
             -s STRING 将系统时间设置为STRING中指定的时间。

 

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...