适当扩展bash中的命令行参数

时间:2012-11-09 03:04:36

标签: bash shell

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

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

这会出现像

这样的错误行为
make NAME=Hi Here

有没有更好的方法来改进go()函数?

1 个答案:

答案 0 :(得分:2)

将$ *替换为" $ @":

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