你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

shell脚本简介

2021-12-3 4:32:38

一 编程语言介绍

编程语言是指计算机能理解的语言,人们通过使用计算机语言可以给计算机批量下达任务,让其按照人类的思想去完成工作。最常见的语言有:汇编语言、C语言、java语言、php语言、Python语言、golang语言等等。

二shell介绍

shell是一个程序,采用C语言编写,是用户和linux内核沟通的桥梁。它既是一种命令语言,又是一种解释性的编程语言。简单来说,shell语言就是介于内核与用户之间,负责命令解释。

三shell变量定义

1 何时需要定义变量

如果某个内容需要多次使用,并且在代码中重复出现,那么可以用变量代表该内容。这样在修改内容的时候,仅仅需要修改变量的值。
在代码运作的过程中,可能会把某些命令的执行结果保存起来,后续代码需要使用这些结果,就可以直接使用这个变量。

2 如何定义一个变量

变量格式: 变量名=值

在shell编程中的变量名和等号之间不能有空格。

变量名命名规则:
    命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
    中间不能有空格,可以使用下划线(_)。
    不能使用标点符号。
    不能使用bash里的关键字(可用help命令查看保留关键字)。

四变量分类

系统中的变量根据作用域及生命周期可以分为四类:本地变量、环境变量、全局变量、内置变量 

1 本地变量

用户自定义的变量,定义在脚本或者当前终端中,脚本执行完毕或终端结束变量失效。

2 环境变量

定义在用户家目录下的.bashrc或.bash_profile文件中,用户私有变量,只能本用户使用。

查看当前用户的环境变量 env

查询当前用户的所有变量(临时变量与环境变量) set

3 将当前变量变成环境变量 export

定义一个临时变量
1、
[root@zutuanxue tmp]# export A=hello //临时将一个本地变量(临时变量)变成环境变量
[root@zutuanxue tmp]# env|grep ^A
A=hello
2、
[root@zutuanxue tmp]# A=HELLO
[root@zutuanxue tmp]# export A

3、定义一个永久生效变量:
vim .bash_profile 或者 ~/.bashrc
A=hello

4 全局变量

使用export命令将本地变量输出为当前shell中的环境变量
所有用户及shell都可以使用,可以在/etc/profile /etc/bashrc下永久定义

打印全局变量 printenv

定义格式
export SCHOOL='zutuanxue'


测试方法:
通过不同用户登录测试是否能读取变量

5 内置变量

系统变量(内置bash中变量) : shell本身已经固定好了它的名字和作用.

$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错
 若退出状态值为0,表示命令运行成功
 若退出状态值为127,表示command not found
 若退出状态值为126,表示找到了该命令但无法执行(权限不够)
 若退出状态值为1&2,表示没有那个文件或目录
 
$$:当前所在进程的进程号     echo $$   eg:kill -9 `echo $$`  = exit   退出当前会话

$!:后台运行的最后一个进程号  (当前终端)  # gedit &
!$ 调用最后一条命令历史中的参数
!! 调用最后一条命令历史


$#:脚本后面接的参数的个数
$*:脚本后面所有参数,参数当成一个整体输出,每一个变量参数之间以空格隔开
$@: 脚本后面所有参数,参数是独立的,也是全部输出

$0:当前执行的进程/程序名  echo $0     
$1~$9 位置参数变量
${10}~${n} 扩展位置参数变量  第10个位置变量必须用{}大括号括起来
./1.sh a b c