Shell入门-bash变量

本文深入探讨Bash脚本中的变量定义、调用、叠加等基础操作,讲解环境变量、位置参数变量、预定义变量的特性与使用场景,同时解析系统环境变量PATH和PS1的作用,以及位置参数变量的灵活运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


变量
计算机内存单元,其存放的值可以改变。
字母数字和下划线,但不能以数字开头

在linux中,变量的默认类型为字符串类型
变量的定义中,若要使用空格,需要使用’ab c’或者"ab cd"
变量中,可以使用转义符""
变量值的叠加,使用" 变 量 名 " 、 " 变量名"、" ""{变量名}"
name=$(命令)
环境变量建议是用大写,便于区分

name = $(date)
name = 'a b'
name = "a b"
name = linux

分类:
用户自定义变量
环境变量:主要保存的是和系统操作环境相关的数据
位置参数变量:用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
预定义变量:是bash中已经定义好的变量,变量名不能自定义,变量作用固定

用户自定义变量

变量定义

name = shen

变量调用

echo $name

变量叠加

aa=123
aa= "$aa"456	#aa=123456
aa=${aa}789		#aa=123456789

变量查看

set		#查看系统中所有变量

变量删除

unset aa	#删除变量aa

环境变量

用户自定义变量只在当前shell中生效
环境变量,会在当前shell及所有子shell中生效
配置文件中的环境变量,所有shell生效

定义

sh		#进入子shell
bash	#进入子shell
pstree	#确定进程数
exit	#退出当前shell

export name = shen	#定义环境变量
age = 18
export age

查询变量

env		#查询环境变量,set是所有变量

删除变量

unset name

系统环境变量PATH

1、作用
冒号分隔的路径
系统查找命令的路径

2、变量叠加

PATH = "$PATH":/tmp/test	#冒号之后添加要添加的路径,仅临时生效

配置文件的修改,才能永久生效

PS1

只能使用set查看
1、作用
定义系统提示符的变量

[root@loacalhost ~]#
#用户名root
#当前主机名@localjost
#当前文件名~
#提示符

\d:显示日期,格式为“星期 月 日”
\h:显示简写的主机名
\t:显示24小时制时间,“HH:MM:SS”
\T:显示12小时制时间,“HH:MM:SS”
\A:显示24小时制时间,“HH:MM”
\u:显示当前用户名
\w:显示当前所在目录的完整名称
\W:显示当前所在目录的最后一个目录
#:执行的第几个命令
$:提示符,root用户为#,普通用户为$

echo $PS1	#当前提示符格式
[\u@\h \W]\$
PS1 = '[\u@\t \w]\$ '	#\$之后最好加一个空格

位置参数变量

位置环境变量作用
$nn代表数字,$0代表命令本身,$1-$9代表第1-9个参数,十以上的参数,需要使用大括号 ${10}
$*命令行中所有的参数,所有参数为一个整体
$@命令行中所有的参数,对每个参数区分对待
$#命令行中所有参数的个数

脚本内容:

#!/bin/bash

echo $0
echo $1
echo $2

echo "A total of $# parameters"	#参数个数
echo "The parameters is : $*"	#所有参数
echo "The parameter is : $@"	#所有参数

输出

[root@18:15:08 /tmp]# ./canshu.sh 11 22 33
./canshu.sh
11
22
A total of 3 parameters
The parameters is : 11 22 33
The parameter is : 11 22 33

接收键盘输入

#直接将输入赋值给变量
read -p "name: " name 		#输出提示信息
read -t 30: age				#等待用户30秒输入,
read -n 10 -p "sex,0-girl,1-boy:": sex			#只接受指定字符数10个
read -s -p "password : ": password				#隐藏输入的数据

$* 和 $#的区别

for i in "$*"
#$*中的所有参数是一个整体,次循环只执行一次
	do
		echo "The parameter is : $i"
	done
X = 1
for j in "$@"
#$@中的每个参数都是独立的,次循环会执行n次
	do
		echo "the parameter $x is : $i"
		X=$(($x+1))
	done

预定义变量

预定义变量作用
$?最后一次执行的命令的返回状态。返回为0,上一条正确执行,返回非0,上一条命令执行错误
$$当前进程的进程号pid
$!后台运行的最后一个进程的进程号pid
ls			#正确执行
echo $?
#输出0
ls jiweo	#文件不存在
echo $?
#output:2

脚本内容

#!bin/bash
echo "the current pid is :  $$"

输出

the current pid is 3682
内容概要:本文详细介绍了900W或1Kw,20V-90V 10A双管正激可调电源充电机的研发过程和技术细节。首先阐述了项目背景,强调了充电机在电动汽车和可再生能源领域的重要地位。接着深入探讨了硬件设计方面,包括PCB设计、磁性器件的选择及其对高功率因数的影响。随后介绍了软件实现,特别是程序代码中关键的保护功能如过流保护的具体实现方法。此外,文中还提到了充电机所具备的各种保护机制,如短路保护、欠压保护、电池反接保护、过流保护和过温度保护,确保设备的安全性和可靠性。通讯功能方面,支持RS232隔离通讯,采用自定义协议实现远程监控和控制。最后讨论了散热设计的重要性,以及为满足量产需求所做的准备工作,包括提供详细的PCB图、程序代码、BOM清单、磁性器件和散热片规格书等源文件。 适合人群:从事电力电子产品研发的技术人员,尤其是关注电动汽车充电解决方案的专业人士。 使用场景及目标:适用于需要高效、可靠充电解决方案的企业和个人开发者,旨在帮助他们快速理解和应用双管正激充电机的设计理念和技术要点,从而加速产品开发进程。 其他说明:本文不仅涵盖了理论知识,还包括具体的工程实践案例,对于想要深入了解充电机内部构造和工作原理的人来说是非常有价值的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值