无法运行unix shell脚本

时间:2014-09-01 06:48:35

标签: shell unix ksh

    #!/bin/ksh
    echo -n "enter the 1 to convert lower to upper or 2 convert upper to lower"
    read n
    echo -in_str "Enter the string here"
    read in_str
    echo $n
    echo $in_str
    if [ $n -eq 1 ] then
        $ echo $in_str| awk '{print toupper($0)}'
    elif [ -n -eq 2 ] then
        $ echo $in_str| awk '{print tolower($0)}'
    else
        echo "please select the correct choice"
    fi

获取错误:其他意外我无法运行上述代码

3 个答案:

答案 0 :(得分:1)

此:

if [ $n -eq 1 ] then

需要这样:

if [ $n -eq 1 ]; then

或者这个:

if [ $n -eq 1 ]
then

答案 1 :(得分:1)

您需要在then之前使用分号。并且您有额外的$个符号。我想你想要这样的东西

if [ $n -eq 1 ]; then
    echo $in_str| awk '{print toupper($0)}'
elif [ $n -eq 2 ]; then
    echo $in_str| awk '{print tolower($0)}'
else
    echo "please select the correct choice"
fi

至少它似乎在这里工作。

答案 2 :(得分:0)

$ echo $in_str| awk '{print toupper($0)}'

???

我认为您不希望该行前面的$字符(或其他echo行)。

此外,如果您希望thenif位于同一行,则应为:

if [ $n -eq 1 ] ; then