【发布时间】:2016-02-26 10:29:30
【问题描述】:
我是 ksh 世界的新手,我现在遇到了一个脚本问题。此行下的脚本位于 UNIX 机器中用户的 .profile 文件中,当我尝试与他连接时,我总是得到错误
home/userTest/.profile: 语法错误: `if' unmatched
我不知道如何解决这个问题,因为我认为这个脚本定义了连接用户的提示,如果我有这个错误提示只显示“$”
我试过命令
ksh -n /home/userTest/.profile
我总是在文件的最后一行得到错误
#!/bin/ksh
# ksh example
if [[$0 = "ksh"]];
then
bash
exit $?
fi
if [[$0 = "-ksh"]];
then
bash --login
exit $?
fi
export LOGIN=$LOGNAME
#prompt config
PS1="$LOGIN@"$(hostname)":$PWD"
if [["$(id -u)" = "0"]];
then
export PS1="$PS1# "
else
export PS1="$PS1> "
fi
#Alias utile
alias ll="ls -la"
#Set any export here
export PATH_EXAMPLE=/home/userTest
export JAVA_HOME=$PATH_EXAMPLE/games/java/current
export PATH=$JAVA_HOME/bin:$PATH
我该如何解决这个问题?
谢谢。
【问题讨论】:
-
当我按原样复制您的代码并使用 "ksh -n" 运行检查时,我没有收到任何错误。您正在使用哪个 ksh ksh88 或 ksh93
-
如果使用 ksh --version 命令,我会得到“version sh (AT&T Research) 93t+ 2010-06-21”,所以我猜我有 ksh93
-
无需检查用户是否以root身份运行。把
\$放到PS1里面,会根据用户是不是root渲染成$或者#。
标签: syntax syntax-error ksh