shell编程——感知(shell变量)

2024-08-02 07:51:12 浏览数 (2)

shell编程——感知(shell变量)

什么是shell?

Shell是一种命令解释器,是用户与操作系统内核之间的接口程序。

Shell在用户和Linux内核之间提供了一个交互界面,它不仅能够接收用户输入的命令并传递给内核执行,还能将内核的执行结果以自然语言的形式展示给用户。除了基本的命令解释功能,Shell还具备编写脚本的能力,使得用户能够自动化执行一系列命令,从而简化重复的系统任务

什么是shell变量

Shell中的变量是一种用于存储数据的结构,可以在脚本中使用。变量名以字母或下划线开头,后面可以跟字母、数字或下划线。在Shell中,变量赋值时不需要使用等号两边的空格,但为了可读性,建议加上空格。

以下是一些关于Shell中变量的基本用法:

1、变量基础

定义变量:

代码语言:javascript复制
name="张三"

读取变量的值:

代码语言:javascript复制
echo $name    

修改变量的值:

代码语言:javascript复制
name="李四"
echo $name    

删除变量:

代码语言:javascript复制
unset name   

判断变量是否已设置:

代码语言:javascript复制
if [ -z "$name" ]; 
then
  echo "变量未设置"
else
  echo "变量已设置"
fi    

#此处if循环语句后续在详细讲解,此处只做简单介绍
if [判断条件];
then
执行动作    #符合条件执行的动作
else
执行动作    #不符合条件执行的动作
fi         #结束循环符号

拓展:

使用变量作为命令参数:

代码语言:javascript复制
grep "hello" file.txt    

可以改为:

代码语言:javascript复制
pattern="hello"
file="file.txt"
grep $pattern $file    

使用变量进行算术运算:

代码语言:javascript复制
a=10
b=20
sum=$((a   b))
echo "和为: $sum"   

2、数组变量

使用变量作为数组元素(数组变量赋值——即为一个变量赋予一组值):

代码语言:javascript复制
fruits=("apple" "banana" "cherry")
[root@xiaoge ~]# echo ${fruits[@]}     #取出数组中所有的值
apple banana cherry
[root@xiaoge ~]# echo ${fruits[0]}     #取出数组中第一个值
apple
[root@xiaoge ~]# echo ${fruits[1]}     #取出数组中第二个值
banana
[root@xiaoge ~]# echo ${fruits[2]}     #取出数组中第三个值
cherry

#数组中的元素计数是从0开始——0.1.2.3...
#在Shell脚本中,${fruits[@]}中的@符号表示数组的所有元素。当使用@符号时,它会展开为数组中的所有元素,形成一个由空格分隔的元素列表。

遍历数组:

代码语言:javascript复制
for fruit in "${fruits[@]}";
do
  echo $fruit
done    
#此处简单展示for循环的用法,后续会做写详细用法
for fruit in "${fruits[@]}";    #对于fruit存在于fruits这个数组中(将fruits中的每一个元素挨个赋值给fruit)
do
  echo $fruit                   #回显fruit的值
done  

获取数组长度:

代码语言:javascript复制
length=${#fruits[@]}
echo "数组长度: $length"  
#在Shell脚本中,${#fruits[@]}中的#符号用于获取数组的长度。${#array[@]}表示获取数组array中元素的个数。

**小结:**以上就是Shell中变量的一些基本用法。在实际编程中,可以根据需要灵活运用这些功能。如需深入了解可自行资料检索或后台私信,共同学习,共同进步

0 人点赞