2016-04-13 10 views
1

私は自分のサーバー上で私のエイリアスが "sh -c"で動作しないのはなぜですか?

php --version 

が私に与え、理由を理解していない:

PHP 5.6.17 

sh -c 'php --version' 

が私を与えるとき:

PHP 4.4.9 

私はしたいです〜へex "sh -c"コマンドでphp5.6でコマンドを実行します。

つまり、私のPHPエイリアスが「sh -c」で動作しないのはなぜですか?

そして「sh -c」で動作させる方法は?

私の.bash_profile:

# .bash_profile 

# Get the aliases and functions 
if [ -r ${HOME}/.bashrc ] ; then 
    source ${HOME}/.bashrc 
fi 

# User specific environment and startup programs 

PATH=$PATH:$HOME/bin 
BASH_ENV=$HOME/.bashrc 
USERNAME="" 

export USERNAME BASH_ENV PATH 

私の.bashrc:

# .bashrc 

# User specific aliases and functions 

# Source global definitions 
if [ -f /etc/bashrc ]; then 
     . /etc/bashrc 
fi 

alias php='/usr/local/php5.6/bin/php' 

答えて

1

bash --versionsh --versionの出力を比較します。

あなたshは、それが起動するときに.bashrcが供給されていない、実際にbashないので、別名phpは新しいシェルで定義されていません。

+0

しかし、どのようにshで動作させるには? – Olivier

+1

正しい答えは「あなたはありません」です。エイリアス展開は、非対話型シェルの場合、デフォルトでは有効になっていません。これは、入力の手間を省くためです。 – chepner

関連する問題