2

実行のためにスクリプトの内容を bash にパイプするときに、bash スクリプトにオプションを提供しようとしています。

#!/bin/bash

SETUP_PACKAGES=""

while getopts ":u:" opt; do
  case $opt in 
    p)
       if [[ "$OPTARG" =~ "mysql" ]] ; then SETUP_PACKAGES="$SETUP_PACKAGES mysql-client libmysqlclient-dev"; fi
       ;;

    # other parts omitted...
  esac
done

シェルのようにスクリプトを実行すると./script.sh -p mysqlうまくいきます。目的はスクリプトをリポジトリに保存することなので、試してみcurl -L example.com/my/script | bash -p mysqlました。ただし、これはスローし/usr/bin/mysql: /usr/bin/mysql: cannot execute binary fileます。

目標を達成するために何をする必要がありますか?

4

2 に答える 2

2

-s対話型シェルの位置パラメータを設定するには、bash のオプションが必要です。

curl -L example.com/my/script | bash -s -p mysql
于 2013-01-13T14:33:56.843 に答える