Shell 从bash脚本创建用户帐户
这是我必须从文本文件创建用户帐户的代码。用户名来自文本文件,我想将密码设置为unix lab。但是,此脚本似乎不起作用Shell 从bash脚本创建用户帐户,shell,unix,scripting,Shell,Unix,Scripting,这是我必须从文本文件创建用户帐户的代码。用户名来自文本文件,我想将密码设置为unix lab。但是,此脚本似乎不起作用 #!/bin/sh for i in `cat unix_tuesday.txt` password = "unixlab" do echo "adduser $i" adduser $i echo -e "$password" | passwd $password done 通过报告运行此操作: 第2行: 对于我来说,在'cat unix_tuday.txt中` ^-
#!/bin/sh
for i in `cat unix_tuesday.txt`
password = "unixlab"
do
echo "adduser $i"
adduser $i
echo -e "$password" | passwd $password
done
通过报告运行此操作:
第2行:
对于我来说,在'cat unix_tuday.txt中`
^-SC1073:无法分析此for循环。修复以允许更多检查。
第3行:
密码=unixlab
^-SC1058:应为“do”。
^-SC1072:应为“do”。修复所有提到的问题,然后重试。
密码分配介于for和do之间。将其移到开头会产生一组新的错误:
第2行:
密码=unixlab
^-SC1068:在赋值中,不要在=周围加空格。
第3行:
对于我来说,在'cat unix_tuday.txt中`
^-SC2013:要读取行而不是单词,请将管道/重定向到“while read”循环。
^-SC2006:使用$。。而不是遗留的“…”。
第6行:
adduser$i
^-SC2086:双引号可防止全局搜索和分词。
第7行:
echo-e$password | passwd$password
^-SC2039:在POSIX sh中,回显标志未定义。
人工用户
-p、 -password密码由crypt3返回的加密密码。默认设置是禁用密码
注意:不建议使用此选项,因为密码或
列出进程的用户可以看到加密密码
有几个问题: 您的for循环已断开do放置错误 passwd需要一个特殊的选项 这应该满足您的要求:
#!/usr/bin/env bash
for i in $(cat unix_tuesday.txt); do
password=unixlab
adduser $i
echo $password | passwd $i --stdin
done
还要考虑到adduser和useradd之间存在一个连接