LinuxShell变量

本文围绕Shell脚本中的变量展开,介绍了变量命名规则,即由字母、数字或下划线组成且以字母或下划线开头,建议用有意义英文单词命名。还说明了变量可直接使用即定义,以及只读变量、位置参数和预定义变量等内容,并给出相关案例。

变量:

命名规则:

在Shell中,变量名可以由字母、数字或者下划线组成,并且只能以字母或者下划线开头。对于变量名的长度,Shell并没有做出明确的规定。因此,用户可以使用任意长度的字符串来作为变量名。但是,为了提高程序的可读性,建议用户使用相对较短的字符串作为变量名。

在一个设计良好的程序中,变量的命名有着非常大的学问。通常情况下,用户应该尽可能选择有明确意义的英文单词作为变量名,尽量避免使用拼音或者毫无意义的字符串作为变量名。这样的话,用户通过变量名就可以了解该变量的作用。

变量定义:

在Shell中,通常情况下用户可以直接使用变量,而无需先进行定义,当用户第一次使用某个变量名时,实际上就同时定义了这个变量,在变量的作用域内,用户都可以使用该变量。

#!/bin/bash
#########################
#File name:4.sh
#Version:V10.24
#Author: 小🐖
#Email:wgq3135@163.com
#Created time:2023-03-19 15:03:41
#Description:
#########################

a=1
b="hello"

echo $a
echo $b


#RES:
[root@rhel9 01]# bash 4.sh 
1
hello

image-20230319152352775

#声明数组变量
[root@kittod ~]# declare -a cd='([0]="a" [1]="b" [2]="c")'
[root@kittod ~]# echo ${cd[1]}
b
[root@kittod ~]# echo ${cd[@]}
a b c

image-20230319152515693

注:也可使用env查看环境变量

只读变量(常量):
[root@rhel9 myTest]# str="name"
[root@rhel9 myTest]# readonly str
[root@rhel9 myTest]# str="$str++"
-bash: str:只读变量
位置参数,预定义变量:

许多情况下,Shell脚本都需要接收用户的输入,根据用户输入的参数来执行不同的操作。
从命令行传递给Shell脚本的参数又称为位置参数,Shell脚本会根据参数的位置使用不同的位
置参数变量读取它们的值。

image-20230319152641759

案例:
#!/bin/bash
#########################
#File name:4.sh
#Version:V10.24
#Author: 小🐖
#Email:wgq3135@163.com
#Created time:2023-03-19 15:03:41
#Description:
#########################


echo "first arg:$1"
echo "second arg:$2"
echo "all(*) arg:$*"
echo "all(@) arg:$@"
echo "all arg number:$#"
echo "Program Process Id:$$"

#RES:
[root@rhel9 01]# bash 4.sh 5 6 
first arg:5
second arg:6
all(*) arg:5 6
all(@) arg:5 6
all arg number:2
Program Process Id:112550
$?案例:
#!/bin/bash
#########################
#File name:5.sh
#Version:V10.24
#Author: 小🐖
#Email:wgq3135@163.com
#Created time:2023-03-19 15:32:33
#Description:
#########################

ping -c2 $1 &>/dev/null
if [ $? = 0 ];then
	echo "host:$1 is fine"
else
	echo "host:$1 is bad"
fi


#RES:
[root@rhel9 01]# bash 5.sh www.baidu.com
host:www.baidu.com is fine

[root@rhel9 01]# bash 5.sh 192.168.5.1
host:192.168.5.1 is bad

$*$@的区别:
[root@rhel9 01]# set -- "i have" a cat
[root@rhel9 01]# echo $#
3
[root@rhel9 01]# echo $*
i have a cat
[root@rhel9 01]# echo $@
i have a cat
[root@rhel9 01]# for i in "$*";do echo $i;done
i have a cat
[root@rhel9 01]# for i in "$@";do echo $i;done
i have
a
cat

#RES
$*是将所有参数作为一个返回值
$@是将每个参数分别返回
数据集介绍:皮革缺陷检测数据集一、基础信息数据集名称:皮革缺陷检测数据集图片数量:训练集:429张图片验证集:41张图片测试集:20张图片总计:490张图片分类类别:- CUERO(皮革):表示皮革材料或正常区域。- MALO(坏的):表示存在缺陷或质量不合格的区域。- REGULAR(一般的):表示中等质量或有轻微瑕疵的区域。标注格式:YOLO格式,包含边界框和类别标签,适用于目标检测任务。数据格式:JPEG图片,来源于实际采集场景。二、适用场景- 制造业质量控制系统:集成到皮革产品生产线中,实时检测材料缺陷(如划痕、破损),实现自动化质量分拣,提升生产效率。- 农业和畜牧业产品评估:用于生皮原料检测,辅助评估动物皮革质量,支持分级和定价决策。- 计算机视觉算法研发:训练和验证目标检测模型(如YOLO系列),推动工业缺陷检测领域的AI技术创新。- 职业教育与技能培训:作为教学资源,培养学生在制造业中应用AI进行缺陷识别的实践能力。三、数据集优势- 精准标注与高实用性:所有图片采用YOLO格式标注,边界框定位准确,类别标签基于真实工业场景(CUERO、MALO、REGULAR),确保数据与实际应用高度匹配。- 类别覆盖全面:包含三种关键质量状态(正常、缺陷、中等),覆盖常见缺陷类型,提升模型在复杂场景下的泛化能力。- 任务适配性强:标注兼容主流深度学习框架(如YOLO、PyTorch),可直接用于目标检测任务,并支持迁移学习到其他工业检测场景。- 数据来源可靠:图片采集自真实环境,聚焦皮革缺陷检测的核心需求,为自动化质检系统提供高效、可落地的数据支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值