在bash中正确展开命令行参数



我想显示自己正在运行的内容,但是当命令包含空格参数时,它失败了。

#!/bin/bash
go() {
  echo "*** $*"
  $* || exit 1
}
go make NAME="Hi Here"

会出现错误的行为,例如

make NAME=Hi Here

是否有更好的方法来改进GO()函数?

用" $@"替换$*:

#!/bin/bash
go() {
  echo "*** $*"
  "$@" || exit 1
}
go make NAME="Hi Here"

相关内容

  • 没有找到相关文章

最新更新