shell 将任何命令传递给bash脚本并在脚本内部执行

1hdlvixo  于 2023-08-07  发布在  Shell
关注(0)|答案(1)|浏览(107)

我试图传递一个install命令作为bash脚本的参数,但是这个特定的命令段curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh在我的脚本内部执行之前在我的终端外部执行。有什么解决办法吗?我需要运行作为参数传递到脚本中的任何命令。下面是我到目前为止的实现。

install_package () {
   $2
   EXITCODE=$?
   if [ "$EXITCODE" -ne "0" ]; then
       exit $EXITCODE
   fi
}

install_package "brew" "/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)""

字符串

gcuhipw9

gcuhipw91#

我会使用"$@",而不是将所有内容都塞进$2

install_package () {
   if ! "$@"; then exit $?; fi
}

字符串
用任意数量的参数调用它。有关引用$@的效果,请参阅您的shell手册。基本上,它保持位置参数$1.$n不被单词分割。

相关问题