【问题标题】:expect command in Solaris 11Solaris 11 中的 expect 命令
【发布时间】:2017-05-15 21:38:32
【问题描述】:

新的期望命令,在 Solaris 11 中包含 expect 包,我从 Linux 了解到它对自动化非常有用。

我正在尝试创建大约 10 个用户并通过脚本为用户设置密码。

#!/usr/bin/expect 
spawn /usr/bin/passwd user1
expect "New password: \n" 
send "Userpass123$\r" 
expect "Re-enter new Password: \n" 
send "Userpass123$\r"

密码设置正确,但为单个用户设置密码需要将近 20 秒,

找到下面的输出

JUDI-DEV-01# time /tmp/123
spawn /usr/bin/passwd user1
New Password:
Re-enter new Password:
real    0m20.023s
user    0m0.005s
sys     0m0.005s
JUDI-DEV-01#

请帮助我从文件中获取用户 id 、 UID 、 GID 、 home dir 并创建用户帐户 示例文件数据是 /tmp/userlist

user1:150:20:App User1:/export/home/user1:/bin/ksh
user2:151:20:App User2:/export/home/user2:/bin/ksh
user3:152:20:App User3:/export/home/user3:/bin/ksh

dbuser1:201:30:db user1:/export/home/dbuser1:/usr/bin/ksh
dbuser2:202:30:db user1:/export/home/dbuser2:/usr/bin/ksh

我知道在 shell 脚本中将值分隔到不同的变量,不确定它在期望中是如何工作的

【问题讨论】:

    标签: solaris expect


    【解决方案1】:

    第二次发送密码后,添加expect eof。这将确保程序的完成。

    send "Userpass123$\r"
    expect eof
    

    要拆分值,可​​以使用split 命令

    % split "dbuser1:201:30:db user1:/export/home/dbuser1:/usr/bin/ksh" :
    dbuser1 201 30 {db user1} /export/home/dbuser1 /usr/bin/ksh
    %
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-11
      • 2017-06-03
      • 2015-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      相关资源
      最近更新 更多