zoukankan      html  css  js  c++  java
  • expect交互式创建账号密码

    这个脚本是我在建立samba用户的时候用到的,一开始我是一步一步的操作,后来嫌麻烦了,就写了这个脚本,也学习了一下expect。

    #!/usr/bin/expect
    set user [lindex $argv 0]
    set pass [lindex $argv 1]

    spawn sed -i "s/123,/&$user,/g" /etc/samba/smb.conf  将新用户添加到smb配置文件
    spawn useradd -s /bin/sh -d /home/$user $user  建立系统用户
    expect "*#"
    spawn passwd $user  创建密码
    expect "*password:"
    send "$pass "
    expect "*password:"
    send "$pass "
    spawn smbpasswd -a $user  添加用户到sbm
    expect "*password:"
    send "$pass "
    expect "*password:"
    send "$pass "
    interact

    注释:

    spawn: 后面加上需要执行的shell 命令

    expect: 只有spawn 执行的命令结果才会被expect 捕捉到,因为spawn 会启

    动一个进程,只有这个进程的相关信息才会被捕捉到,主要包括:标准输入的提
    示信息,eof 和timeout。
    send 和send_user:send 会将expect 脚本中需要的信息发送给spawn 启动
    的那个进程,而send_user 只是回显用户发出的信息,类似于shell 中的echo 而
    已。
    set 脚本传参,expect是通过set <变量名称> [lindex $argv <param index>]
  • 相关阅读:
    驱动
    设备编号
    makefile 中的赋值
    UART
    c 语言的复杂声明
    linux下arm汇编的常用指令解析
    linux下的arm汇编程序
    ok6410下的uboot分析与实现
    层级选择器的理解
    css外部样式的理解
  • 原文地址:https://www.cnblogs.com/zclzhao/p/5462391.html
Copyright © 2011-2022 走看看