IT评测·应用市场-qidao123.com

标题: 5 list 语法 [打印本页]

作者: 大连密封材料    时间: 2025-1-11 20:52
标题: 5 list 语法
在 Shell 脚本中,列表(数组)是一种非常有效的数据布局,可以用来存储多个值。
界说数组

  1. # 定义一个空数组
  2. my_array=()
  3. # 定义一个带有初始值的数组
  4. my_array=("value1" "value2" "value3")
复制代码
访问数组元素

  1. # 访问数组的第一个元素(索引从0开始)
  2. echo "${my_array[0]}"  # 输出: value1
  3. # 访问数组的所有元素
  4. echo "${my_array[@]}"  # 输出: value1 value2 value3
复制代码
添加元素到数组

  1. # 添加单个元素到数组
  2. my_array+=("value4")
  3. # 添加多个元素到数组
  4. my_array+=("value5" "value6")
复制代码
获取数组长度

  1. # 获取数组的长度
  2. length=${#my_array[@]}
  3. echo "Array length: $length"  # 输出: Array length: 6
复制代码
遍历数组

  1. # 使用 for 循环遍历数组的所有元素
  2. for element in "${my_array[@]}"; do
  3.     echo "$element"
  4. done
复制代码
示例解释

  1. # 初始化一个空数组,用于存储指令名称
  2. INSTRUCTIONS=()
  3. # 遍历 SOURCE_DIR 目录下所有扩展名为 .c 的文件
  4. for FILE in "$SOURCE_DIR"/*.c; do
  5.     if [ -f "$FILE" ]; then
  6.         # 复制文件到目标目录
  7.         cp "$FILE" "$TARGET_DIR"
  8.         
  9.         # 获取文件名(不包括扩展名),并将其赋值给变量 INSTRUCTION
  10.         INSTRUCTION=$(basename "$FILE" .c)
  11.         
  12.         # 将指令名称添加到 INSTRUCTIONS 数组中
  13.         INSTRUCTIONS+=("$INSTRUCTION")
  14.     fi
  15. done
  16. # 打印所有指令名称
  17. echo "Instructions: ${INSTRUCTIONS[@]}"
复制代码
在这个示例中:
其他数组操作示例

删除数组元素

  1. # 删除数组中的某个元素
  2. unset my_array[1]
  3. # 删除整个数组
  4. unset my_array
复制代码
访问数组的部分元素

  1. # 访问数组的前两个元素
  2. echo "${my_array[@]:0:2}"  # 输出: value1 value3
复制代码
完备示例

以下是一个完备的示例脚本,展示了数组的各种操作:
  1. #!/bin/bash
  2. # 定义一个带有初始值的数组
  3. my_array=("value1" "value2" "value3")
  4. # 添加元素到数组
  5. my_array+=("value4")
  6. my_array+=("value5" "value6")
  7. # 获取数组的长度
  8. length=${#my_array[@]}
  9. echo "Array length: $length"
  10. # 访问数组的所有元素
  11. echo "All elements: ${my_array[@]}"
  12. # 遍历数组的所有元素
  13. for element in "${my_array[@]}"; do
  14.     echo "Element: $element"
  15. done
  16. # 删除数组中的某个元素
  17. unset my_array[1]
  18. # 访问数组的所有元素
  19. echo "All elements after deletion: ${my_array[@]}"
  20. # 删除整个数组
  21. unset my_array
  22. # 尝试访问已删除的数组
  23. echo "All elements after deleting the array: ${my_array[@]}"
复制代码
  1. kemao@TP340:~/shell-test$ ./test.sh
  2. Array length: 6
  3. All elements: value1 value2 value3 value4 value5 value6
  4. Element: value1
  5. Element: value2
  6. Element: value3
  7. Element: value4
  8. Element: value5
  9. Element: value6
  10. All elements after deletion: value1 value3 value4 value5 value6
  11. All elements after deleting the array:
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4