我正在尝试在Linux中编写一个非常简单的shell脚本.我想实现的方案是:
在内部创建用户帐户并为其提供密码(为此,不允许与用户进行任何交互).成功后,只需向用户显示成功消息即可.其余的都不应该显示.
在RHEL上,这很简单,因为passwd命令接受–stdin选项,该选项帮助我通过Pipe传递输入.我将标准输出重定向到日志文件中. [不共享该代码,因为它有点简单,并且在StackExcahnge上针对不同的问题在此进行了多次解释.]
但是,Ubuntu不接受passwd的–stdin选项,因此我不得不使用以下方法:
#!/bin/bash
useradd -m demo &>path/to/logfile.log
passwd demo &>>path/to/logfile.log << EOF
myPasswd
myPasswd
EOF
echo "User demo successfully added to the system."
现在,这里的问题是我的输出不显示echo语句,并且还显示警告:
root@ubuntu:~# ./usercreate.sh
./usercreate.sh: line 8: warning: here-document at line 3 delimited by end-of-file (wanted `EOF')
root@ubuntu:~#
而不是我期望的:
root@ubuntu:~# ./usercreate.sh
User demo successfully added to the system.
root@ubuntu:~#
请帮助我完成以下两件事:
>有没有办法仅对此脚本禁止显示该警告?
>为什么它不打印我的echo语句,如何打印它?
PS:也欢迎编写此脚本的另一种方法或想法
谢谢