将ls输出存储在变量数组中(bash)

时间:2015-06-22 17:22:47

标签: shell

我想将ls命令的每个输出存储在变量数组中。 我已经尝试过任意目录:var=$(ls);echo $var 它将目录下的整个文件名存储到变量中。

我也尝试了其他方法,但它将每个单词存储为数组中的可变元素。

是否有任何方法可以将每个文件的名称存储在数组的不同索引的目录中?

1 个答案:

答案 0 :(得分:2)

是的,don't use ls

使用glob。

var=(*)
printf '[%q]\n' "${var[@]}"

%q是一种bash-ism(据我所知)。除了一些odder文件名之外,%s会在那里工作。

来自Bash参考手册:

%q

Causes printf to output the corresponding argument in a format that can be reused as shell input.