Bash Echo包装器问题



我的问题很简单。

我使用的是一些回声/打印包装器,而不是在更大的bash脚本中使用简单的回声呼叫。示例:

!/bin/bash
function print_common () { echo "$@"; }
function print_inf    () { echo "INFO: $(print_common $@)"; }
function print_war    () { echo "WARN: $(print_common $@)"; }
function print_err    () { echo "ERROR: $(print_common $@)"; }

通常,它运作良好。以下脚本1.sh:

!/bin/bash
print_err "Whoops!"

生成:

ERROR: Whoops!

但是,script2.sh:

!/bin/bash
print_err "*** Whoops!"

生成:

ERROR: script2.sh Whoops!

预期的打印结果是:

ERROR: *** Whoops!

感谢您的帮助!

在您的回声/打印包装纸中,用单个Qoutes

包装一个可变print_common

示例:

function print_err    () { echo "ERROR: '$(print_common $@)'"; }

如果您不包装在引号中,它将:

echo *** Whoops

,如果您将星(*)作为回声命令的参数(*),它将向您显示执行Scirpt目录中每个文件的列表。

使用报价将向您展示您想要的东西。

相关内容

  • 没有找到相关文章

最新更新