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中变量的一些基本用法。在实际编程中,可以根据需要灵活运用这些功能。如需深入了解可自行资料检索或后台私信,共同学习,共同进步