Shell echo smbpasswd by--stdin不';行不通

Shell echo smbpasswd by--stdin不';行不通,shell,scripting,Shell,Scripting,我想自动创建samba密码,但此命令不起作用: echo "passwd"|smbpasswd -a -s $user 它显示了这个错误: 不匹配-密码未更改。 无法获取新密码 您能建议我的脚本自动化吗?您需要重复密码,可以说是“确认”,例如 printf "passwd\npasswd\n" | smbpasswd -a -s $user 应该可以工作。上面的printf解决方案工作得很好,但echo-e也可以工作得很好 echo -e "yourpass\nyourpass\n

我想自动创建samba密码,但此命令不起作用:

echo "passwd"|smbpasswd -a -s $user
它显示了这个错误:

不匹配-密码未更改。 无法获取新密码

您能建议我的脚本自动化吗?

您需要重复密码,可以说是“确认”,例如

printf "passwd\npasswd\n" | smbpasswd -a -s $user

应该可以工作。

上面的printf解决方案工作得很好,但echo-e也可以工作得很好

echo -e "yourpass\nyourpass\n" |smbpasswd -a -s youruser

同意你的观点,但你能简单地告诉我printf的函数是什么吗?
printf
是IEEE Std 1003.2-1992(`POSIX.2')中指定的shell命令,它比
echo
更强大,因为它可以方便地指定格式选项--
man 1 printf
(不要与C标准库中的man 3 printf混淆,后者记录了类似的函数)将为您提供所有详细信息。