首页 > 解决方案 > 这个命令(shell代码)问题有什么解决方案吗

问题描述

我有一些shell代码看起来像:

while read line; do echo $line; done < (ls -la $path)

但是,得到一个错误“ -bash: syntax error near unexpected token `(' ” 我无法修复它。我知道管道命令也可以做得很好。喜欢

ls -la $path | while read line; do echo $line; done

但实际上我希望在循环中做一些事情,比如改变全局值

while read line; $((count++)); done 

并且管道没有工作。

标签: linuxbashshell

解决方案


进程替换的正确语法是:

while read line; do echo $line; done < <(ls -la $path)

但无论如何,这样做根本不是一个好主意,请改用 for 循环:

for fname in "$path"/* "$path"/.*; do
  echo "$fname"
done

如果您需要在循环中获取有关文件的信息,请使用stat


推荐阅读