如何在bash中导出'ls'命令来分隔变量

How to export 'ls' command in bash to separate variables

例如:

List="$(ls ~/Downloads)" 
echo $List

输出将是:

ExampleDirectory Example_Directory ExampleFile

我如何获得(ls之后):

echo $File1
echo $File2 
echo $File3

得到

ExampleDirectory
Example_Directory
ExampleFile

喜欢单独的 ls 输出,不仅像 $List 中那样生成文本行,还生成变量 $File1$File2$File3。 好像有点复杂。

如果要将 ~/Downloads 中的每个文件(或目录名称)分配给不同的 bash 变量,则必须为这些变量找到不同的名称。使用 bash 索引数组会更简单:

$ declare -a List=(~/Downloads/*)

然后,将它们全部打印出来:

$ printf '%s\n' "${List[@]}"

只打印第一个和第三个:

$ printf '%s\n' "${List[0]}" "${List[2]}"

要打印 List 数组中的条目数:

$ printf '%d\n' "${#List[@]}"