我的问题很简单。
我使用的是一些回声/打印包装器,而不是在更大的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目录中每个文件的列表。
使用报价将向您展示您想要的东西。