shell

本文介绍了Shell脚本的基础知识,包括脚本的定义、基本格式、变量类型(普通变量、环境变量、位置变量和特殊变量)、条件判断(if语句)和循环(for循环)。此外,还讲解了如何定义和调用函数,以及在脚本中处理参数。通过这篇笔记,读者可以掌握Shell脚本的基本操作和常用语法。
摘要由CSDN通过智能技术生成

shell脚本基础笔记

1.1脚本的介绍

(1)什么是shell脚本?

一系列的shell命令的集合,可加入一系列的逻辑操作,并将这些命令放入一个文件中
	1.文件
	2.shell命令n个
	3.可加入逻辑
	4.需要在linux的终端执行

例如:

#test.sh
ls
pwd
if [ xxx ]
	cd..
fi

(2)什么是shell命令?

$ls
$cd
$pwd

(3)shell脚本的基本格式

​ a.命名格式

​ 一般命名规则:xxx.sh(建议以.sh为后缀命名)

​ b.书写格式

#test.sh #是shell脚本中的注释
#如果第一行忘了写,使用默认的命令解析器 /bin/sh
#!/bin/bash  #指定解析shell脚本的时候使用的命令解析器(/bin/sh也可以)
#一系列shell命令
ls
cp
rm

(4)shell脚ch本的执行

#shell脚本编写完成后,必须添加执行权限
chmod u+x xxx.sh
#执行shell脚本
./xxx.sh
sh test.sh

1.2 shell脚本中的变量

(1)变量的定义

	​a.普通变量(也叫本地变量)

#定义变量定义完成,必须要赋值, =前后不能有空格
temp=666
#普通变量只能在当前的进程中使用
	b.环境变量 ->一般大写

# 可以理解为全局变量,在当前的操作系统可以全局访问
# 分类
		- 系统自带的
			- PWD
			- SHELL
			- PATH
			- HOME
		- 用户自定义的
			- 将普通变量提升为系统级别环境变量
			GOPATH=/home/zoro/go/src ->普通环境变量
			set GOPATH=/home/zoro/go/src ->系统环境变量
			export GOPATH=/home/zoro/go/src
	c.位置变量

执行脚本的时候,可以给脚本传递参数,需要使用位置变量

# 已经存在脚本test.sh
#!/bin/bash
echo "hello,$0"
echo "传递第一个参数:$1"
echo "传递第二个参数:$2"
echo "传递第三个参数:$3"
echo "传递第四个参数:$4"
echo "传递第五个参数:$5"
$ ./test.sh a b c d e f g
hello, .test.sh
传递第一个参数: a
传递第二个参数: b
传递第三个参数: c
传递第四个参数: d
传递第五个参数: e				
				aa. $0:执行脚本文件的名字
				bb. $1:第一个参数
				cc. $2:第二个参数
d.特殊变量

​				aa. $#:获取传递的参数的个数

​				bb. $@:给脚本传递所有的参数。

​				cc. $?:脚本执行完成之后的状态,失败>0 or 成功=0

​				dd. $$:脚本进程执行之后的结果值
		e.普通变量的取值
		# 变量定义
		value=123 #默认以字符串处理
		value1 = "123 456"
		echo $value
		# 如何取变量的值:
		- $变量名
		- ${变量名}
		f.取命令执行之后的结果值	
		# 取值的两种方式:
		var=$(shell命令)
		var='shell命令'
		g.引号的使用
		# 双引号
   		echo "当前文件:$var"
		- 打印的时候会var中的值取出并且输出
		# 单引号
		echo '当前文件:$var'
		- 将字符串原样输出

1.3条件判断和循环

	a.shell脚本中的if条件判断
	# if 语句
# 注意事项
		- if 和 []之间有一个空格
		- [ 条件 ] : 条件的前后都有空格
		- else if => elif
		- 结尾:fi
if [ 条件判断 ];then
	逻辑处理 
	xx
	xxx
	xxxx
fi

#======================
if [ 条件判断 ]
then
	逻辑处理 
	xx
	xxx
	xxxx
fi
	b.shell脚本for循环
	# shell中的循环 for/ while
	# 语法: for 变量 in 集合; do;done

1.4shell脚本中的函数

# 没有函数修饰,没有参数,没有返回值
#格式
funname(){
	#得到第一个参数
	arg1=$1
	#得到第二个参数
	arg2=$2
	函数体	
}

#没有参数列表,但可以传参
#函数调用
funname aa bb cc
0 -> 调用成功
非0 -> 失败

本文由我边看教学视频边整理的笔记~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值