Linux:需要帮助来查找语法错误(第3行)

时间:2019-12-17 10:34:15

标签: bash syntax

因此,我们的想法是将所有具有用户ID -le 500的活动用户插入mysql表。

语法错误在第3行;我已经搜索了整个脚本,但仍然没有找到它。

这是脚本:

#!/bin/bash

for name in $(cat /etc/passwd) do

    username=`echo $name | cut -d : -f1`
    userid=`echo $name | cut -d : -f3`
    userpass=`cat /etc/shadow | grep $username | cut -d : -f2`

    if [[ "`expr $userpass`" =~ "!" ]]; then
        echo "$username is disabled, skipped
    else
        if [[ $userid -le 500 ]]; then
            echo "User id of $username is over 500, skipped"
        else
            fullname=`echo $name | cut -d : -f5`
                    "INSERT INTO`mailbox`(username,`password`,`name`,`maildir`,`quota`,`local_part`,`domain`,`created`,`modified`,active)VALUES($username,'$pass','$fullname$',0,'xxx','date --rfc3339=date','date --rfc3339=date',1)
        fi
    fi
done

2 个答案:

答案 0 :(得分:1)

此处的语法错误是;前缺少do

for name in $(cat /etc/passwd) do

应该是

for name in $(cat /etc/passwd); do

在添加;之后,还应在"中添加结束符echo "$username is disabled, skipped。除了这些语法错误之外,您还可以在脚本中进行很多改进。我推荐https://www.shellcheck.net/

答案 1 :(得分:0)

您在第3行中缺少分号:

for name in $(cat /etc/passwd); do