首页 > 解决方案 > 在 subshel​​l 中使用 printf 时如何修复“找不到命令”?

问题描述

我在 Catalina 上并尝试printf在子外壳中做一个简单的事情:

$(printf "%s" somestring)

但是,我收到以下错误

zsh:找不到命令:somestring”

这是为什么?什么原因?我如何解决它?

在一个真实的例子中,我将它分配为clang标志:

clang -DName=$(printf "%s" somestring)`

标签: macos

解决方案


这就是它的$( )作用——它捕获命令的输出(“somestring”),并将其用作主命令的一部分。因此,

clang -DName=$(printf "%s" somestring)

扩展为:

clang -DName=somestring

...这是一个有效的命令。但是当你只使用

$(printf "%s" somestring)

它扩展到:

somestring

...这不是一个有效的命令,所以你得到一个错误。

顺便说一句,我很确定这是一个重复的问题,但我找不到合适的匹配项。如果有人发现一个,请将其标记为骗子。


推荐阅读