Arrays 将ls输出转换为数组

Arrays 将ls输出转换为数组,arrays,bash,ls,Arrays,Bash,Ls,我想将ls的输出放入一个数组中,这样我就可以循环遍历它,并最终使用用户指定的条目 我所做的如下 SETUPS="$(ls)" IFS=$' ' read -rd '' setup <<<"$SETUPS" 它可以在每个条目前面回显一个数字,但我不可能从中选择一个条目,因为每个值似乎都存储为一个值。请参见,为什么,而是使用适当的while循环进行进程替换(请参见,为什么,而是使用适当的while循环进行进程替换(如果要以数组形式获取此目录中的所有文件,可以使用globbing:

我想将ls的输出放入一个数组中,这样我就可以循环遍历它,并最终使用用户指定的条目

我所做的如下

SETUPS="$(ls)"
IFS=$' ' read -rd '' setup <<<"$SETUPS"

它可以在每个条目前面回显一个数字,但我不可能从中选择一个条目,因为每个值似乎都存储为一个值。请参见,为什么,而是使用适当的
while
循环进行进程替换(请参见,为什么,而是使用适当的
while
循环进行进程替换(如果要以数组形式获取此目录中的所有文件,可以使用globbing:

files=(*)
printf '%s\n' "${files[@]}"
将全局匹配的所有文件存储在数组
文件中
,然后您可以根据需要使用
printf
打印这些文件,或者通过在数组上循环执行任何其他操作

n=0
for current in "${files[@]}"; do
    n=((n+1))
    printf '%s %s\n' "$n" "$current"
done
你甚至不需要将它存储在中间的数组中,如果你不需要它用于其他目的:

for current in *; do

工作正常

如果要以数组形式获取此目录中的所有文件,可以使用globbing:

files=(*)
printf '%s\n' "${files[@]}"
将全局匹配的所有文件存储在数组
文件中
,然后您可以根据需要使用
printf
打印这些文件,或者通过在数组上循环执行任何其他操作

n=0
for current in "${files[@]}"; do
    n=((n+1))
    printf '%s %s\n' "$n" "$current"
done
你甚至不需要将它存储在中间的数组中,如果你不需要它用于其他目的:

for current in *; do

工作正常

@Inian我想向用户显示该文件names@Inian我想向用户显示文件名这将显示为
/example
,我需要它是
example
,第一个是空条目,它删除了./characters。打印时它将显示:
.git
config
所以第一个是一个空行。然后显示隐藏值,然后显示我实际要显示的第一个文件,这完全是空行。数组中没有任何内容,只有一个条目是完全空的,它将显示为
/example
我需要它是
example
,第一个是空的entryit did删除./characters。打印时将显示:
.git
config
,因此第一个是空行。然后显示隐藏值,然后实际要显示的第一个文件显示为空行。没有任何内容,数组中只有一个条目是完全空的