搜索
bottom↓
回复: 3

请教一条简单的linux指令!

[复制链接]

出0入0汤圆

发表于 2013-9-11 22:32:48 | 显示全部楼层 |阅读模式
本帖最后由 yidehui 于 2013-9-11 23:24 编辑

这几天这学习shell编程,下面的例子是批量添加用户的脚本。

我很好奇对于标示/////////////的那一句的意思,先打印123456,如果打印不成功则后台执行输入密码stdin stu(i) ;

最后把输入的密码结果丢弃到 /dev/null,既然都丢弃到 /dev/null了,那为什么还要后台执行输入密码stdin stu(i) ?

我是刚接触这shell 编程的. 问题是RZ了点,还是请大家帮忙指点下。

#!/bin/bash
i=1
while  [  $i  -le  20  ]
do
    useradd stu$i
    echo "123456" | passwd --stdin stu$i &> /dev/null                /////////////
    i=`expr $i + 1`
done


最后还有个问题:

我发现现在的2440开发板的shell都基本是sh,都不用bash?仅仅是为了减少存储空间大小吗?

出0入42汤圆

发表于 2013-9-11 23:51:34 | 显示全部楼层
你这句问号直接把我这种菜鸟带沟里去了.
应该是把输出的123456用管道("|")传递给passwd命令作为其输入. 这句执行的输出扔到黑洞去, 不显示出来.


于似乎每个用户都有个一样的密码123456

出0入0汤圆

 楼主| 发表于 2013-9-12 08:43:47 | 显示全部楼层
albert_w 发表于 2013-9-11 23:51
你这句问号直接把我这种菜鸟带沟里去了.
应该是把输出的123456用管道("|")传递给passwd命令作为其输入. 这 ...

我记得使用passwd输入密码的格式是

passwd 用户名, 然后字输入1234565

那么这里stdin stu$(i)前面怎么会有--符号。这是怎么回事?

出0入42汤圆

发表于 2013-9-12 08:50:07 | 显示全部楼层
yidehui 发表于 2013-9-12 08:43
我记得使用passwd输入密码的格式是

passwd 用户名, 然后字输入1234565

对,默认是要输密码,可那样就没法跑脚本。于是有些平台支持参数stdin,从标准输入读取密码。因为多字符参数,一般就用--来开头。单字符参数一般-开头,比如ls -l
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 21:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表