如何在Bash中传递带空格的数组作为函数参数

时间:2018-06-07 22:00:12

标签: bash shell unix sh

我有以下脚本:

brews=(
  java8
  archey
  aws-shell
  "bash-snippets --without-all-tools --with-weather"
  cheat
  coreutils
  dfc
  findutils
  "fontconfig --universal"
  fpp
  fzf
  git
  bash-completion
  git-extras
  git-fresh
  git-lfs
  "gnuplot --with-qt"
)

casks=(
  adobe-acrobat-reader
  airdroid
  android-platform-tools
  awscli
  cakebrew
  cleanmymac
  commander-one
  docker
  dropbox
  firefox
  geekbench
  google-backup-and-sync
  google-chrome
  github
  handbrake
  hyper
)

function install {
  cmd=$1
  shift
  for pkg in "$@";
  do
    exec="$cmd $pkg"
    if ${exec} ; then
      echo "Installed $pkg"
    else
      echo "Failed to execute: $exec"
    fi
  done
}


install 'brew install' ${brews[@]}
install 'brew cask install' ${casks[@]}

当我执行它时,我注意到它正在分割gnuplot --with-qt之类的内容,例如我看到它尝试执行:brew install --with-qt

我做错了什么?

0 个答案:

没有答案