Shell 数组使用( 及 @ 跟 * 的区别)

简介: Shell 数组使用( 及 @ 跟 * 的区别)
  • 数组也是一个变量,有点特殊的变量,存储多个数据的集合就是数组。
  • 不同的 shell 解释器,索引起始位置也不一样,bash0 开始,csh,zsh1 开始。
# 定义数组
$ arr=(11 22 33)
# bash 解释器取出数组 0 索引的值
$ echo ${arr[0]}
11
# csh、zsh 解释器取出数组 1 索引的值
$ echo ${arr[1]}
11
  • @*的区别
  • 变量使用 * 时,变量被 "" 包裹,会当成一串字符串处理。
  • 变量使用 @ 时,变量被 "" 包裹,依然当做数组处理。
  • 变量在没有被 "" 包裹的情况下,@* 是等效的.
arr=(11 22 33)
echo "---- @ 带冒号"
for line in "${arr[@]}"
do
  echo $line
done
echo "---- * 带冒号"
for line in "${arr[*]}"
do
  echo $line
done
echo "---- @ 不带冒号"
for line in ${arr[@]}
do
  echo $line
done
echo "---- * 不带冒号"
for line in ${arr[*]}
do
  echo $line
done
  • 输出结果:
---- @ 带冒号
11
22
33
---- * 带冒号
11 22 33
---- @ 不带冒号
11
22
33
---- * 不带冒号
11
22
33
相关文章
|
Shell 索引
shell脚本入门到实战(四)- 数组
shell脚本入门到实战(四)- 数组
132 0
|
12月前
|
存储 Shell
Shell 数组
【10月更文挑战第16天】
186 3
|
Linux Shell 文件存储
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
350 1
|
12月前
|
Shell PHP 索引
Shell 数组
10月更文挑战第2天
89 1
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
Shell KVM 虚拟化
Shell 数组编程
【8月更文挑战第22天】 Shell 数组编程
128 10
|
12月前
|
Shell Docker 容器
使用exec模式与shell模式,执行ENTRYPOINT和CMD的区别
结合 `exec`与 `shell`模式,`ENTRYPOINT`与 `CMD`在Docker容器启动时的交互方式展现出不同的特点。选择哪种模式,取决于对执行环境的纯净度、性能需求以及是否需要利用shell特性。理解这些细微差别,有助于更精细地控制容器的行为,优化应用部署与管理流程。
280 0
|
12月前
|
JSON Java Shell
Dockerfile中RUN、CMD、ENTRYPOINT、SHELL命令的区别
理解这些指令的差异和应用场景,有助于构建高效、灵活且易于管理的Docker镜像。在实际应用中,根据需要选择合适的指令,可以有效地控制镜像构建和容器运行的行为。
659 0
|
资源调度 网络协议 Shell
在Linux中,Linux内核和Shell有何区别?
在Linux中,Linux内核和Shell有何区别?
|
存储 算法 安全
shell 脚本之 函数与数组
shell 脚本之 函数与数组