我听说printf比echo. 根据我的经验,我只能回忆起一个我不得不使用的实例,printf因为它echo无法将一些文本输入到 RHEL 5.8 上的某个程序中,但printf确实如此。但显然,还有其他差异,我想询问它们是什么以及是否有特定情况下何时使用一种与另一种。
我希望能够捕获命令替换的确切输出,包括尾随的换行符。
我意识到默认情况下它们会被剥离,因此可能需要进行一些操作才能保留它们,并且我想保留原始退出代码。
例如,给定一个带有可变数量的尾随换行符和退出代码的命令:
f(){ for i in $(seq "$((RANDOM % 3))"); do echo; done; return $((RANDOM % 256));}
export -f f
Run Code Online (Sandbox Code Playgroud)
我想运行类似的东西:
exact_output f
Run Code Online (Sandbox Code Playgroud)
并有输出:
Output: $'\n\n'
Exit: 5
Run Code Online (Sandbox Code Playgroud)
我对bashPOSIX 和 POSIX都感兴趣sh。