在bash语言中,我如何定义文件路径列表?

在bash语言中,我如何定义文件路径列表?

在bash语言中,如何定义路径列表?

我需要如下所示的东西:

list_of_paths = ["$Home/MyDir/test.c", "$Home/YourDir/file.c"]

答案1

bash我可以使用以下命令创建一个数组

mypaths=( "/my/first/path" "/my/second/path" )

数组的元素也可以单独分配:

mypaths[0]="/my/first/path"
mypaths[1]="/my/second/path" 

请注意, 周围不应有空格=

手册中的“数组”部分对此进行了描述bash

使用数组:

printf 'The 1st path is %s\n' "${mypaths[0]}"
printf 'The 2nd path is %s\n' "${mypaths[1]}"

for thepath in "${mypaths[@]}"; do
    # use "$thepath" here
done

替代方案/bin/sh(也可以在bash许多其他sh类似 shell 中工作):

set -- "/my/first/path" "/my/second/path"

printf 'The 1st path is %s\n' "$1"
printf 'The 2nd path is %s\n' "$2"

for thepath do
    # use "$thepath" here
done

这使用 shell 中唯一的数组/bin/sh,即位置参数列表($1$2$3等,或统称为$@)。该列表通常包含脚本或 shell 函数的命令行参数,但可以在脚本中使用set.

最后的循环也可以写成

for thepath in "$@"; do
    # use "$thepath" here
done

请注意,每个变量扩展的引用都很重要。

相关内容