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

问题描述 投票:-1回答:2

因此,想法是将所有具有用户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
bash syntax
2个回答
0
投票

您在第3行中缺少分号:

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

0
投票

这里的语法错误是在;之前缺少do

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

应该是

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

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

© www.soinside.com 2019 - 2024. All rights reserved.