如果参数和重定向之间没有空格,则 Bash 不正确的行为

标签 bash command-line io-redirection

我有一个问题。 我写了一个程序,我必须验证一些通过命令行传递的参数(我正在使用 argv[] )并使用在 stdin 上重定向的文件作为输入。 该程序可以运行,但如果参数和重定向之间没有空格,我会遇到问题

as ./aout -s 30 20< ficso

这正常吗?我认为字符 <由 bash 保留。

谢谢

最佳答案

像这样直接针对重定向运算符放置的数字会将其变成不同的重定向运算符,在本例中,它从 FD 20 而不是 FD 0 获取输入。

关于如果参数和重定向之间没有空格,则 Bash 不正确的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38153894/

相关文章:

command-line - 如何阻止 Windows 批处理文件提前退出?

bash:如何将一个字符串添加到 stderr 行之前,并按准确顺序组合 stdout 和 stderr 并存储在 bash 中的一个变量中?

linux - 在 linux 中,如何仅按文件名比较两个目录并获取不匹配的结果列表

linux - 从 hdparm 输出中提取信息

image-processing - 如何通过命令行为图像添加水印 - 希望使用 Irfanview

python - Python : multiple channels for data and messages? 中的管道输出

shell - 为什么 "echo 123 > a.txt b.txt"只创建一个文件?

linux - 将 fork-exec 习惯用法移植到 Windows

bash - awk 打印每第 n 个匹配的行和所有不数学的行

ruby - 调用 ACPI/D-bus 运行 ruby​​ 脚本