问答详情
源自:6-2 例:批量添加删除指定数量的用户

语句解释?!

echo $pass | /usr/bin/passwd -- stdin $name$i
大家帮忙解释一下这句。主要是管道符 | 和 --stdin $name$i 的顺序
谢谢!


提问者:dearestx 2016-01-06 10:55

个回答

  • iliul
    2016-01-07 13:00:24
    已采纳

    我尝试了一下,在Ubuntu下passwd命令是不支持 --stdin 参数的,查下资料说在debian上就不再支持了,不知道你的是不是Ubuntu系统呢?

    我尝试了在CentOS上没有问题,当然Ubuntu上可以通过下面的命令代替:

    echo "$name$i:$pass" | chpasswd &> /dev/null


  • CHINA8
    2017-06-04 08:46:02

    然后应该怎么执行呢?抱歉我还是有点看不懂啊。

  • wulongtao
    2016-05-28 11:44:15

    设置密码的时候不能成功设置;但是用户已经创建了~

  • dearestx
    2016-01-07 17:24:33

    http://img.mukewang.com/568e2ea60001f75b07410388.jpg

    系统版本,定义的变量,执行视频中的语句,执行结果用户并没有添加成功

  • iliul
    2016-01-07 13:05:13

    http://serverfault.com/questions/336298/can-i-change-a-user-password-in-linux-from-the-command-line-with-no-interactivit

  • dearestx
    2016-01-06 18:23:06

    http://www.imooc.com/video/7968

    http://img.mukewang.com/568ceafe00014b9d10050590.jpg

    无法成功执行此句!

  • iliul
    2016-01-06 16:50:48

    如果

    /usr/bin/passwd -- stdin $name$i

    这样写,--叫做选项结束符,好像是这个意思,代表命令选项到此结束,来个例子。

    root@iliul-PC:~# mkdir -- -l
    root@iliul-PC:~# mkdir -l
    mkdir:无效选项 -- l
    Try 'mkdir --help' for more information.
    root@iliul-PC:~#

    如果不加 -- 就会把-l当做option

  • iliul
    2016-01-06 16:46:37

    没有看懂后面 

    -- stdin $name$i

    这段,补充完整吧,包括这几个参数,管道符号 |  前面的命令结果会作为后面的输入,也就是

    echo $pass

    的结果。