(超详细)Linux Shell 编程

Shell的定义

Shell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等。 用户每输入一条命令,Shell就执行一条。这种从键盘输入命令,就可以立即得到回应的对话方式,称为交互的方式。
当命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,该程序文件就被称为Shell脚本。 在Shell脚本里内置了很多命令、语句及循环控制,然后将这些命令一次性执行完毕,这种通过文件执行脚本的方式称为非交互的方式。 Shell脚本语言很适合用于处理纯文本型的数据,而Linux系统中几乎所有的配置文件、日志文件,以及绝大对数的启动文件都是纯文本类型的文件。

[root@localhost ~]# cat /etc/shells
/bin/sh (指向/bin/bash)
/bin/bash (默认shell类型)
/usr/bin/sh
/usr/bin/bash

请添加图片描述

shell脚本:

​ 关键字

​ Linux命令

​ shell自带命令

​ 函数

​ 控制语句

.sh 作为文件后缀,代表是shell脚本

/etc/profile ~/.bash_profile ~/.bashrc ~/etc/bashrc(以最后一个生效)

shell脚本类型:请添加图片描述

脚本书写规范

​ #!/bin/bash

添加注释信息

#日期,#作者,#作用,#版本,#联系方式…

#Date:2022-6-12

#Author:

#Desc:

#Vers:

#Email:

文件名后缀 .sh

shell脚本执行:请添加图片描述

shell脚本编写规范:
写shell脚本时,命令用反单引号括起来``
设置变量 name=upper(等号两边不能有空格)

成对的符号,建议一次性写完 () {} [] ’ ’ " " ``

对于流程控制语句,应一次性将格式写完,再添加内容。缩进最好空四个


if  []

   then(注意缩进)

fi

for 

do 

...

done

变量

变量赋值方法

​ 变量名="值 "(=左右两边没有空格)

​ echo $变量名(进行输出)

对于环境变量:变量名大写

​ set命令:查看环境变量
env命令:查看全局变量
declare:用来做定义
unset NAME:取消变量/删除变量
    eg :
      # unset A 撤销变量 A
      # readonly B=2 声明静态的变量 B=2 ,不能 unset
用户自定义只在set中有;env中没有
请添加图片描述
请添加图片描述
请添加图片描述

自定义环境变量

​ (仅在当前环境有效)

​ 1、export 变量名=值

​ 2、变量名=值;export 变量名

​ 3、declare -x 变量名=值

赋值用= ; 相等用==

用户级环境变量

~/.bashrc

全局环境变量

/etc/profile

/etc/bashrc

/etc/profile.d:存放脚本

取消环境变量:unset 变量名

局部变量

变量名=值
变量名=‘值’
变量名=“值”
变量名=command
变量名=$(command)
变量数组
特殊变量

赋值时引号的作用:

  • 双引号:允许通过$符号引用其他变量值
  • 单引号:禁止引用其他变量值,$视为普通字符
  • 反撇号:命令替换,提取命令执行后的输出结果 全局变量的定义方法 export 变量名

字符串变量:
请添加图片描述
数组:
请添加图片描述
获取数组元素:请添加图片描述

位置变量!!!

​ $0 获取当前shell脚本文件名

​ $n (n>0) 代表参数值

$@ 代表命令行中所有的参数
$# 代表命令行中所有参数的个数
$* 代表命令行中所有的参数

$? 获取上一条命令执行的状态返回值 0代表成功,非0代表失败
$$ 获取当前shel

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值