0

パス内のphp5.3と5.4の切り替えを自動化するためにスクリプトを作成しようとしました。エクスポートは実行すると機能しますが、スクリプト内で実行すると何も実行されません。

これが私のスクリプトです

#!/bin/bash
# chphp
# Switch between php versions 5.3 and 5.4

FIXED_PATH=/here/is/my/path

if [ "$1" != "-v" ]
then
    echo "Wrong usage of the script.\n"
else
    if [ "$2" == 3 ]
    then
            export PATH="$FIXED_PATH:/path/to/php-5.3/bin"
            export PHP_INI_SCAN_DIR=""
    elif [ "$2" == 4 ]
    then
            export PATH="$FIXED_PATH:/path/to/php-5.4/bin"
            export PHP_INI_SCAN_DIR="/path/to/php-5.4/etc/php-dbg.d"
    else
            echo "Wrong usage of the script.\n"
    fi
fi

同様の質問を検索して見つけた次のことも試しましたが、うまくいきませんでした

これ

. ./chphp.sh -v 3

この

source ./chphp.sh -v 3

どうすればそれを修正したり、別の方法で物事を行うことができるかについての提案やアイデアはありますか?

編集:ケントが気づき、私が編集したように、最初のエコーの後にコードにelseがありませんでした。これで、コードは両方の方法で実行されるようになりました。

4

1 に答える 1

1

$1スクリプトは、そうでない場合にのみ変数を設定します -v

の場合、スクリプトは何もしません$1-v最初にスクリプトを確認してくださいif-then

これは役に立ちますか?(php5.3のものを設定するため)

source ./chphp.sh foo 3
于 2013-02-06T16:25:11.417 に答える