欢迎各位兄弟 发布技术文章
这里的技术是共享的
在 macOS 的 shell(通常是 zsh 或 bash)中,可以使用以下方式定义和输出数组:
bash# 定义数组 fruits=("Apple" "Banana" "Orange" "Grape") # 输出所有元素 echo "所有水果: ${fruits[@]}" # 或者使用 printf 更好控制格式 printf "%-8s\n" "${fruits[@]}"
bash# 输出第一个元素(索引从0开始) echo "第一个水果: ${fruits[0]}" # 输出第二个元素 echo "第二个水果: ${fruits[1]}" # 输出最后一个元素 echo "最后一个水果: ${fruits[-1]}"
bash# for 循环输出 echo "使用for循环:" for fruit in "${fruits[@]}"; do echo " - $fruit" done # while 循环输出 echo "使用while循环:" i=0 while [ $i -lt ${#fruits[@]} ]; do echo " ${i}: ${fruits[$i]}" ((i++)) done
bashecho "数组长度: ${#fruits[@]}"
bashecho "带索引的输出:" for i in "${!fruits[@]}"; do printf "索引 %d: %s\n" "$i" "${fruits[$i]}" done
bash# 定义第二个数组 colors=("Red" "Yellow" "Orange" "Purple") # 拼接两个数组输出 combined=("${fruits[@]}" "${colors[@]}") echo "拼接后的数组: ${combined[@]}"
在 macOS 默认的 zsh shell 中与 bash 有些差异:
数组索引从 1 开始(可以设置 setopt KSH_ARRAYS
改为从 0 开始)
使用 ${fruits[@]}
而不是 ${fruits[*]}
来避免分词问题
如果要在脚本中使用 bash,可以在第一行添加 #!/bin/bash
在终端中可以直接运行这些命令,或者保存为 .sh
文件并赋予执行权限