linux - Bash 输入重定向为命令提供标准输入而不是参数/文件名?

标签 linux bash shell

我创建了一个名为“com”的文件,其中包含内容

Chapter*

然后我尝试在 bash 中运行以下命令:

ls < com

据我了解,shell 将接受输入 章节* 从文件“com”并将其放在 ls 旁边,结果如下:

ls Chapter*

现在此命令应该列出以“Chapter”开头的所有文件,但它会打印当前目录中的所有文件。

以下命令也会发生这种情况

cat < list_of_filenames_to_give_input_to_cat_command

让“list_of_filenames_to_give_input_to_cat_command”包含以下内容:

quicksort.c

mergesort.c

radixsort.c

这应该打印上述每个文件的内容。相反,它只是打印文件名,如下所示:

quicksort.c

mergesort.c

radixsort.c

感谢任何帮助!谢谢。

最佳答案

ls 不从标准输入读取参数,而是从命令行读取参数。

你可以简单地这样做:

ls -l $(cat com)

关于linux - Bash 输入重定向为命令提供标准输入而不是参数/文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28808007/

相关文章:

node.js - Node中的 `process.env.USER`和 `process.env.USERNAME`有什么区别?

bash - 修改Xcode的project.pbxproj中的PRODUCT_BUNDLE_IDENTIFIER

bash - 在 Bash 脚本中给定数组变量名称的数组,循环遍历数组元素

linux - 如何为 Eclipse 安装 CDT

c - 使用 GNU 工具链在 Windows 命令行上运行 ARM/C

ruby - 运行守护进程,当某个组中的最后一个其他进程结束时,该守护进程将结束

python - 如何在 bash 脚本中导入 python 文件? (在我的 bash 脚本中使用 python 值)

shell - 在 Ubuntu 中编写只能由 sudo 用户运行的 shell 脚本

regex - sed -e "s/^[^#][A-Z]/export/g"将删除第一个字母...如何防止这种情况?

linux - 为什么 999µs 太短而 1000µs 恰到好处?