linux shell脚本 linux不识别,Linux-Shell脚本无法识别heredoc分隔符

我正在尝试在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:也欢迎编写此脚本的另一种方法或想法

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值