【发布时间】:2021-04-15 03:11:45
【问题描述】:
在想知道如何将 ls 导入 cat 以输出一堆文件后,我意识到更好的方法是 cat $ $(ls *.py),但也意识到 $(ls *.py) cat $ 不起作用:
$(ls *.py) cat $ 1 ⨯
bash: command not found: 1.py
对我来说这很奇怪,为什么会这样?
【问题讨论】:
-
您有一个 $() 并且在该上下文中 ls 正在执行。所以返回的内容会被执行。当它返回 1.py 等时,它以 $(1.py 2.py) 的形式执行。 ls 显示输出,为什么你又需要一只猫?我对这里的要求感到困惑。
-
有几个原因可以避免解析
ls的输出(参见unix.stackexchange.com/q/128985)。您的命令失败的原因是您忘记了管道符号,例如ls *.py | cat应该可以,但最好使用cat *.py