shell变量

1,定义变量时变量名和等号 之间不能有空格,且有以下规则:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

2,使用变量

在变量前面加$或${},花括号可加可不加。加括号是为了识别变量的边界

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

如果不加花括号,skillScript就会当做一个变量。

2,只读变量

使用readonly可以将变量定义为只读变量,只读变量的值不能被改变

Tmp=“tmp”

Readonly tmp

 

3,删除变量

使用unset命令可以删除变量,但不能删除只读变量

Tmp=“tmp”

Unset tmp

 

4,变量类型

a,局部变量:在脚本和命令中定义,只对当前shell有效。

b,环境变量 所有程序,包括shell启动程序都能访问环境变量。

c,shell变量 shell变量由shell程序设置的特殊变量,一部分是局部变量一部分是环境变量。

 

二,字符串

1,单引号,双引号,不加引号

Str=‘tmp’

Str=“tmp”

Str=tmp

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。

 

双引号的优点:

  • 双引号里可以有变量
  • 双引号里可以出现转义字符
your_name='runoob'
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str
Hello, I know you are "runoob"! 

2,拼接字符串

your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting  $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !' #单引号中的单引号用于字符串拼接
greeting_3='hello, ${your_name} !'
echo $greeting_2  $greeting_3
输出结果:
hello, runoob ! hello, runoob !
hello, runoob ! hello, ${your_name} !

3,获取字符串的长度

String="abcd"

Echo ${#string}#输出4

4,提取子串

String="abcdefg"

Echo ${string:1:3}#从string中第2个字符开始截取3个字符 输出为bcd,必须加花括号

5,查找子字符串

string="runoob is a great site"
echo `expr index "$string" io`  # 输出 4 注意是反引号

查找字符 i 或 o 的位置(哪个字母先出现就计算哪个)

三,shell数组

bash支持一位数组(不支持多维数组),并且没有限定数组大小

1,定义数组

数组元素用空格分开

数组名=(值1 2 ... 值n)

array_name=(value0 value1 value2 value3)

array_name=(
value0
value1
value2
value3

)

array_name[0]=value0
array_name
[1]=value1
array_name
[n]=valuen

 

2,读取数组

一般格式:${数组名[下标]}  如:valuen=${array_name[n]}

使用@符号可以获取数组中的所有元素 如:

Echo ${array_name[@]}

 

3,获取数组长度

取数组元素的个数:

Length=${#array_name[@]}

或者

Length=${#array_name[*]}

取得数组单个元素的的长度:

Lengthn=${#array_name[n]}

#!/bin/bash

array=(
sun
shuai
sunshuai
)
echo 全部元素:${array[@]}
echo 数组的长度:${#array[@]}
echo 数组的长度:${#array[*]}
echo 元素3的长度:${#array[2]}
全部元素:sun shuai sunshuai
数组的长度:3
数组的长度:3
元素3的长度:8

三,多行注释

单行注释可以使用#那么多行注释了?

:<<EOF

注释内容

注释内容

EOF

 

EOF也可以使用其他符号 如 ' !

项目资源包含:可运行源码+sql文件+LW; python3.8+django+mysql5.7+html 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 本项目采用了深度学习技术,如卷积神经网络(CNN),用于图像特征提取;同时结合了图像处理库OpenCV,用于图像数据的预处理和后处理。系统实现了基于图像特征的相似图像检索、图像分类、目标检测等功能。通过提取图像的特征向量,不仅可以实现精准的图像搜索和分类,还能帮助用户快速准确地识别图像中的目标物体,具有较高的准确率和效率。通过本项目的设计与实现,可以有效解决在大数据环境下处理海量图像数据时面临的特征提取、图像分析和应用问题,为图像信息的挖掘与利用提供了新的途径和解决方案,具有广泛的应用前景和推广价值。 (1)特征提取模块:使用局部特征描述符(如SIFT、SURF)或深度学习特征提取方法,对海量图像中的特征进行抽取和表示,以便后续的相似度计算。 (2)相似图像搜索模块:用户上传查询图像或输入描述后,系统利用特征提取的结果进行相似图像检索,找出与查询图像最相似的图像,并返回给用户。 (3)标签搜索模块:系统对图像进行自动标签或标注,用户可以根据这些标签进行图像搜索,方便快速地找到感兴趣的内容。 (4)检索结果排序模块:根据图像的相关度或其他指标,系统对检索结果进行排序,确保用户看到最相关的图像在前面展示。 (5)图像分类模块:系统通过训练模型对图像进行分类,将其归入不同的类别,为用户提供更精细的检索和浏览功能。 (6)图像清晰度评估模块:系统可以评估图像的清晰度,排除模糊或质量较低的图像,提高搜索结果的质量和准确性。 (7)图像信息提取模块:系统可以提取图像中的关键信息,如物体、人脸等,为用户提供更多的图像认知和分析功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值