Shell脚本语法错误(if,then,else)

时间:2017-03-10 23:27:49

标签: bash shell

我一直在尝试在bash中创建一个shell脚本,它将显示以下内容:

您是超级用户(当我以root身份运行脚本时)。 您是用户:"用户" (当我以用户身份运行脚本时)。

#!/bin/bash/
if { whoami | grep "root" }; then
echo $USER1
else
echo $USER2
fi

我不断收到这些语法错误消息:

script.sh: line 2: syntax error near unexpected token `then'
script.sh: line 2: `if { whoami | grep "root" }; then'

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

如果大括号用于链接命令,则最后一个命令必须后面有一个命令分隔符。

{ foo ; bar ; }

答案 1 :(得分:1)

 userType="$(whoami)"
 if [ "$userType" = "root" ]; then
    echo "$USER1"
 else
    echo "$USER2"
 fi

答案 2 :(得分:0)

注意你的第一行,she-bang的正确语法是:

#!/bin/bash

你放在那里的一切,是你的脚本的解释器,你也可以为python脚本添加像 #!/usr/bin/python 这样的东西,但你的问题是if语句,所以你可以做这有两种方式在shell脚本中使用

if [ test ] ; then doSomething(); fi

if (( test )) ; then doSomething(); fi

所以要回答你的问题基本上你需要这样做

#!/bin/bash

if [ `id -u` -eq 0 ] ; then
        echo "you are root sir";
else
        echo "you are a normal user"
fi

if (( "$USER" = "root" )); then
        echo "you are root sir";
else
        echo "you are a normal user"
fi

请注意,您可以使用 `cmd` $(cmd) 使用命令,并使用-eq(相等)或{{进行比较1}}(同),希望这能帮到你: - )