5

私は次の.bashrcを書きました:

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

# User specific aliases and functions


function up( )
{
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
    P=$P/..
done
cd $P
export MPWD=$P
}

function back( )
{
LIMIT=$1
P=$MPWD
for ((i=1; i <= LIMIT; i++))
do
    P=${P%/..}
done
cd $P
export MPWD=$P
}

ただし、保存した後、保存するとsource .bashrc、次のエラーが発生しました。 if: Expression Syntax.

私は何を間違っているのですか?私はしばらくググったが役に立たなかった。

4

1 に答える 1

10
if: Expression Syntax 

bashがあなたに与えるエラーではありません。おそらくあなたのシェルはbashではありません。実際、スタンドアロンである限り、エラーはそれ自体ifにはありません。if

$ if [somethingswrong]; then fail; fi # error, then `[` command must have space around it.
-bash: [somethingswrong]: command not found

をエコーすることでシェルを確認$SHELLでき、。を使用してbashのバージョンを確認できます$BASH_VERSION。(後者が設定されていない場合、シェルはbashではありません。)

于 2013-01-21T13:52:19.063 に答える