因此,想法是将所有具有用户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
您在第3行中缺少分号:
for name in $(cat /etc/passwd); do
这里的语法错误是在;
之前缺少do
。
for name in $(cat /etc/passwd) do
应该是
for name in $(cat /etc/passwd); do
[添加;
之后,还要在"
中添加结束echo "$username is disabled, skipped
。除了这些语法错误之外,您还可以在脚本中进行很多改进。我推荐https://www.shellcheck.net/。