IT评测·应用市场-qidao123.com
标题:
5 list 语法
[打印本页]
作者:
大连密封材料
时间:
2025-1-11 20:52
标题:
5 list 语法
在 Shell 脚本中,列表(数组)是一种非常有效的数据布局,可以用来存储多个值。
界说数组
# 定义一个空数组
my_array=()
# 定义一个带有初始值的数组
my_array=("value1" "value2" "value3")
复制代码
访问数组元素
# 访问数组的第一个元素(索引从0开始)
echo "${my_array[0]}" # 输出: value1
# 访问数组的所有元素
echo "${my_array[@]}" # 输出: value1 value2 value3
复制代码
添加元素到数组
# 添加单个元素到数组
my_array+=("value4")
# 添加多个元素到数组
my_array+=("value5" "value6")
复制代码
获取数组长度
# 获取数组的长度
length=${#my_array[@]}
echo "Array length: $length" # 输出: Array length: 6
复制代码
遍历数组
# 使用 for 循环遍历数组的所有元素
for element in "${my_array[@]}"; do
echo "$element"
done
复制代码
示例解释
# 初始化一个空数组,用于存储指令名称
INSTRUCTIONS=()
# 遍历 SOURCE_DIR 目录下所有扩展名为 .c 的文件
for FILE in "$SOURCE_DIR"/*.c; do
if [ -f "$FILE" ]; then
# 复制文件到目标目录
cp "$FILE" "$TARGET_DIR"
# 获取文件名(不包括扩展名),并将其赋值给变量 INSTRUCTION
INSTRUCTION=$(basename "$FILE" .c)
# 将指令名称添加到 INSTRUCTIONS 数组中
INSTRUCTIONS+=("$INSTRUCTION")
fi
done
# 打印所有指令名称
echo "Instructions: ${INSTRUCTIONS[@]}"
复制代码
在这个示例中:
初始化数组
:
INSTRUCTIONS=()
复制代码
初始化一个空数组 INSTRUCTIONS,用于存储指令名称。
遍历文件并添加到数组
:
for FILE in "$SOURCE_DIR"/*.c; do
if [ -f "$FILE" ]; then
cp "$FILE" "$TARGET_DIR"
INSTRUCTION=$(basename "$FILE" .c)
INSTRUCTIONS+=("$INSTRUCTION")
fi
done
复制代码
遍历 SOURCE_DIR 目次下全部扩展名为 .c 的文件。
如果文件存在且是普通文件,则将其复制到目标目次 TARGET_DIR。
获取文件名(不包罗扩展名),并将其添加到 INSTRUCTIONS 数组中。
打印数组内容
:
echo "Instructions: ${INSTRUCTIONS[@]}"
复制代码
打印数组 INSTRUCTIONS 中的全部指令名称。
其他数组操作示例
删除数组元素
# 删除数组中的某个元素
unset my_array[1]
# 删除整个数组
unset my_array
复制代码
访问数组的部分元素
# 访问数组的前两个元素
echo "${my_array[@]:0:2}" # 输出: value1 value3
复制代码
完备示例
以下是一个完备的示例脚本,展示了数组的各种操作:
#!/bin/bash
# 定义一个带有初始值的数组
my_array=("value1" "value2" "value3")
# 添加元素到数组
my_array+=("value4")
my_array+=("value5" "value6")
# 获取数组的长度
length=${#my_array[@]}
echo "Array length: $length"
# 访问数组的所有元素
echo "All elements: ${my_array[@]}"
# 遍历数组的所有元素
for element in "${my_array[@]}"; do
echo "Element: $element"
done
# 删除数组中的某个元素
unset my_array[1]
# 访问数组的所有元素
echo "All elements after deletion: ${my_array[@]}"
# 删除整个数组
unset my_array
# 尝试访问已删除的数组
echo "All elements after deleting the array: ${my_array[@]}"
复制代码
kemao@TP340:~/shell-test$ ./test.sh
Array length: 6
All elements: value1 value2 value3 value4 value5 value6
Element: value1
Element: value2
Element: value3
Element: value4
Element: value5
Element: value6
All elements after deletion: value1 value3 value4 value5 value6
All elements after deleting the array:
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4