小编Her*_*ine的帖子

我可以将 `< file1 cmd1` 解释为 `cmd1 file1` 吗?

我被要求在 C 中重新创建此命令,但没有关于 cmd1 可能是什么的附加信息。

< file1 cmd1 | cmd2 > file2
Run Code Online (Sandbox Code Playgroud)

我的问题围绕该命令的第一个字符解决:<.

让我们忽略管道后​​面的命令,并假装 cmd1 是cat

因此,我可以替换< file1 catcat file1,这在 C 中更容易做到。但是当涉及到其他命令时,这种方法是否有效?

我已经用这两个命令测试了cat和:sed

< Makefile cat
cat Makefile
Run Code Online (Sandbox Code Playgroud)

< Makefile sed 'p'
sed 'p' Makefile
Run Code Online (Sandbox Code Playgroud)

两者打印出相同的结果。那么可以安全地假设我可以解释< file1 cmd1为吗cmd1 file1

bash

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

如果找到则让 grep exit 1,如果没有找到则退出 0

我正在创建一个在 GitHub Actions 中执行的简单命令,该命令构建一个 Makefile 并在找到(匹配)时返回错误Error 1,在未找到时返回成功...

我似乎要么让它失败,即使没有任何问题,要么当有问题时不失败。

这是我的整个命令:

find . -name "Makefile" -exec sh -c 'cd "$(dirname "$0")" && make' {} \; | grep -zqvE "Error 1"
Run Code Online (Sandbox Code Playgroud)

exit 1如果它找到这样的输出,我希望它:

ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [compile] Error 1
Run Code Online (Sandbox Code Playgroud)

或者0其他情况

grep make find stderr

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

标签 统计

bash ×1

find ×1

grep ×1

make ×1

stderr ×1