shell脚本

本文详细介绍了Shell脚本的作用和执行过程,包括作为应用程序和编程语言的双重角色。文章阐述了变量的使用,如自定义变量、环境变量和预设变量,以及它们在脚本中的特殊用法。此外,还讲解了条件测试语句、文件比较、字符串和数字测试,以及控制结构如if、case、for、while和until。文章还涵盖了break、continue命令,shell函数的定义、调用和参数传递,展示了如何通过shell脚本简化系统管理和应用部署。
摘要由CSDN通过智能技术生成

1. shell作为应用程序

交互式地解释、执行用户输入的命令,将用户的操作翻译成机器可以识别的语言,完成相应功能称之为shell命令解析器

shell是用户和Linux内核之间的接口程序

shell本质是对内核起到保护作用,只有shell能够识别的命令才能够直接操作内核来控制硬件

2. shell作为一门语言

它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支完成类似于windows下批处理操作,简化我们对系统的管理与应用程序的部署称之为shell脚本.

shell脚本是shell命令的有序集合

shell脚本是一种脚本语言我们只需使用任意文本编辑器,按照语法编写相应程序,增加可执行权限,即可在安装shell命令解释器的环境下执行

3. shell脚本主要作用

帮助开发人员或系统管理员将复杂而又反复的操作放在一个文件中,通过简单的一步执行操作完成相应任务,从而解放他们的负担

4. shell脚本的执行

shell脚本的代码编写流程

第一步:指定shell脚本文件,一般以.sh作为后缀名,也可以不加,例如:test.sh

第二步:编写代码

#!/bin/bash
# #!用于指定当前脚本文件的shell解释器的类型,如果不写,则用默认的shel l

#shell脚本是shell命令的有序集合,代码的构成就是命令
 
 ls
 
 pwd
 
 echo "hello world"

第三步:修改文件权限

chmod +x test.sh

第四步:执行脚本文件

	./test.sh
	或者 bash test.sh (这种方式不需要修改文件权限)

执行结果

5. 变量

5.1 自定义变量

代码展示:  

 #!/bin/bash
 
 #定义变量 4 #shell脚本中没有数据类型可言,所以定义变量时不需要加数据类型 5 #shell脚本中,赋值操作时不能在等号两边加空格
	#NUM = 100 #错误
	NUM=100
 
 #引用变量 10 # $变量名 取一个变量的值
 i=$NUM
 
 #显示变量
	echo $NUM
	echo $i
 
 #清除变量
	unset NUM
	echo "*************"
	echo $NUM
 
 #使用read从终端读取数据保存在变量中
	read str
	echo "str = $str"
 
 #使用readonly创建一个只读的变量
	readonly n=999
	echo "n = $n"
 
 #指定变量初始化后不能再次修改变量的值,只能使用
	#n=666
	#echo "n = $n"
5.2 环境变量

shell在开始执行时就已经定义了一些和系统的工作环境有关的变量,我们在shell中可以直接使用$name引用

定义:一般在~/.bashrc或/etc/profile文件中(系统自动调用的脚本)使用export设置,允许用户后来更改

设置环境变量:

方法1:临时设置在终端执行命令

	MYVAL=999
	export MYVAL

方法2:永久设置

需要在配置文件(~/.bashrc或/etc/profile)中进行设置即可,设置完毕后需要通过 source命令配置文件立即生效

使用环境变量,一般环境变量类似c语言中的全局变量,可以再shell脚本文件中任意使用

代码展示:  

 #!/bin/bash
 
	echo "You are welcome to use bash"
	echo "Current work dirctory is $PWD"
	echo "the host name is  $HOSTNAME"
	echo "your home dir  $HOME"
	echo "Your shell is  $SHELL"
	echo "user env val is $MYVAL1"

执行结果:

5.3 预设变量
  1. $#:传给shell脚本参数的数量
  2. $*:传给shell脚本参数的内容
  3. $1、$2、$3、...、$9:运行脚本时传递给其的参数,用空格隔开
  4. $?:命令执行后返回的状态
  5. "$?"用于检查上一个命令执行是否正确(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错)。
  6. $0:当前执行的进程名
  7. $$:当前进程的进程号
  8. "$$"变量 常见的用途是用作临时文件的名字以保证临时文件不会重复

代码展示:  

#! /bin/bash
 
 #位置变量$0 ‐ $9 保存从终端输入的每一个参数
	echo "\$0 = $0"
	echo "\$1 = $1"
	echo "\$2 = $2"
	echo "\$5 = $5"
	echo "\$6 = $6"
	echo "\$7 = $7"
	echo "\$8 = $8"
  • 43
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值