Bash 预期未正确设置流浪密码

Bash 预期未正确设置流浪密码,bash,expect,Bash,Expect,我正在从一个bash脚本运行一个子expect脚本,该脚本在这里提供了一个vms,但没有得到我的预期结果(ala,password=foo)。这是我正在运行的,帮助appr ## Create generic(s) for Vagrant groupadd admin useradd -G admin vagrant /usr/bin/expect -dc 'expect { eval spawn passwd vagrant set prompt ":|#|\\\$"

我正在从一个bash脚本运行一个子expect脚本,该脚本在这里提供了一个vms,但没有得到我的预期结果(ala,password=foo)。这是我正在运行的,帮助appr

## Create generic(s) for Vagrant
groupadd admin
useradd -G admin vagrant
/usr/bin/expect -dc 'expect { 
  eval spawn passwd vagrant 
  set prompt ":|#|\\\$"                       ## use correct prompt
  interact -o -nobuffer -re $prompt return    ## must be done twice due to week passwd
  send "vagrant\r"
  interact -o -nobuffer -re $prompt return
  send "vagrant\r"
  interact
}'
下面是调试的屏幕帽

PASSWD=$(expect -c '
  log_user 0
  proc abort {} {
    puts "Error with setting password?"
    exit 1
  }
  spawn passwd vagrant
  expect {
    password:        { send "vagrant\r" }
    default          abort
  }
  expect {
    password:        { send "vagrant\r" }
    default          abort
    eof
  }
  puts "User Vagrant has had password set..."
')

您的
expect
代码可以使用
exp\u continue
进行优化,如下所示

PASSWD=$(expect -c '
  log_user 0
  proc abort {} {
    puts "Error with setting password?"
    exit 1
  }
  spawn passwd vagrant
  expect {
    password:        { send "vagrant\r";exp_continue }
    default          abort
    eof
  }
  puts "User Vagrant has had password set..."
')