我听说printf
比echo
. 根据我的经验,我只能回忆起一个我不得不使用的实例,printf
因为它echo
无法将一些文本输入到 RHEL 5.8 上的某个程序中,但printf
确实如此。但显然,还有其他差异,我想询问它们是什么以及是否有特定情况下何时使用一种与另一种。
我正在尝试使用 eval 命令来评估评论——我不确定这是否是正确的方法。例子:
i=??
(我在这里想要的是#
, 评论之后的内容,或空白)
somecommand arg1 arg2 $(eval $i) >> file
因此,根据$i
价值,它必须是:
somecommand arg1 arg2 # >> file
从“不打印到文件”开始
或者
somecommand arg1 arg2 >> file
从“打印到文件”开始
一个更清晰的示例脚本:
i=true
somecommand arg1 arg2 >> file1
[some code]
somecommand arg1 arg2 >> file2
[some code]
somecommand arg1 arg2 >> file3
[some code]
And so on...
Run Code Online (Sandbox Code Playgroud)
我希望它只有在$i
它为真时才将输出打印到文件中;或者,正如我最初尝试的那样,eval
将 $i 设为注释并注释“输出到文件”的一段代码。
我问是因为我认为有一种比做这样的事情更优雅的方式:
if $i
then
somecommand arg1 arg2 >> file3
else
somecommand arg1 arg2
fi
Run Code Online (Sandbox Code Playgroud)