如何正确地从bash脚本启动ejabberdctl?

如何正确地从bash脚本启动ejabberdctl?,bash,ubuntu,ejabberd,Bash,Ubuntu,Ejabberd,我需要从csv文件在ejabberd中注册成千上万的用户。为此,我写了一个简单的脚本 #!/bin/sh OLDIFS=$IFS IFS=',' [ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; } while read username domain pass p1 p2 p3 p4 do echo "ejabberdctl register $username $dom

我需要从csv文件在ejabberd中注册成千上万的用户。为此,我写了一个简单的脚本

#!/bin/sh
OLDIFS=$IFS
IFS=','
[ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; }
while read username domain pass p1 p2 p3 p4
do
    echo "ejabberdctl register $username $domain $pass"
    ejabberdctl register $username $domain $pass
done < users.csv
IFS=$OLDIFS
#/垃圾箱/垃圾箱
OLDIFS=$IFS
如果s=','
[!-f$INPUT]&&&{echo“$INPUT文件未找到”;退出99;}
读取用户名域时通过p1 p2 p3 p4
做
echo“ejabberdctl注册$username$domain$pass”
ejabberdctl注册$username$domain$pass
完成
但最后,答案是:错误:无法注册
如果我只是运行从输出复制的行,一切都正常。用户是正常创建的。

< P>这只是稍后的一个小技巧:一旦你的循环工作了,如果你认为EJababdCTL太慢,你可以尝试使用REST API。在处理许多请求时,这应该快得多

临时配置如下内容(请记住在完成后删除此内容):

然后在shell中执行此操作以注册帐户:

curl 'localhost:5280/api/register?user=user2&host=localhost&password=somepass123'
curl 'localhost:5280/api/register?user=user2&host=localhost&password=somepass123'