【发布时间】:2019-12-17 10:34:15
【问题描述】:
因此,我们的想法是将所有具有用户 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
【问题讨论】:
-
我不熟悉这种编码,但通过谷歌快速搜索,看起来“f1”、“f2”、“f3”、“f5”都应该有间距。 “f 1”、“f 2”、“f 3”、“f 5”
-
不行,我用过无数次了
-
请edit你的问题,然后只写出包含语法错误的行,以免我不小心选择了错误的第3行。
-
请用shellcheck.net检查你的脚本有很多问题,不推荐使用的代码,缺少引号在这里详细说明每个问题。一旦您处理了 ShellCheck 提出的每个问题,并且如果您仍在努力解决一些问题,请发布具体问题。我知道只有 1 个声望点你不能编辑你的帖子。
-
谢谢大家,我解决了这个问题!原来它确实是for语句中的分号呵呵