因此,我们的想法是将所有具有用户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
答案 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