相关疑难解决方法(0)

带有空格 + 变量的 Ls

我想做这样的事情,但它不会在管道结束后保存变量:

fs=( )
echo ${fs[@]}
ls -A1 |
while read f
do
    echo ${fs[@]}
    fs+=( "$f" )
    echo ${fs[@]}
done
echo "All files/dirs: "${fs[@]}
Run Code Online (Sandbox Code Playgroud)

对于当前目录中的文件 1、2 和 3,我得到以下输出:

# Output:


1
1
1 2
1 2
1 2 3
All files/dirs: 
Run Code Online (Sandbox Code Playgroud)

管道结束后,如何保持 fs 变量的值?

更新:

  • 不能使用 *,因为我需要隐藏文件
  • 不能只使用 fs=($(ls)),而有时文件/目录名称中会有空格

ls bash pipe control-flow

1
推荐指数
1
解决办法
5522
查看次数

标签 统计

bash ×1

control-flow ×1

ls ×1

pipe ×1