我写了以下.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.
我做错了什么?我用谷歌搜索了一段时间但没有用。
答案 0 :(得分:8)
if: Expression Syntax
不是bash会给你的错误。也许你的shell不是bash。事实上,只要if
独立,任何错误都不会出现在if
本身:
$ if [somethingswrong]; then fail; fi # error, then `[` command must have space around it.
-bash: [somethingswrong]: command not found
您可以通过回复$SHELL
来检查您的shell,然后您可以使用$BASH_VERSION
检查哪个版本的bash。 (如果后者未设置,则shell不是bash。)