Я использую скрипт ниже, чтобы изменить имя пользователя в случайном порядке с помощью функции ожидания, но это дает мне команду ошибки, которая не найдена, даже если я установил команду wait. И скрипт perl, используемый для замены имени пользователя.Использование функции Expect в скрипте Bash
#!/usr/bin/expect -f
echo "Enter domain";
read domain
VAR1=`grep $domain /home/rlinux57/testing/randomname/userdomains | awk '{print $2}' | head -1`
VAR2=/home/rlinux57/testing/randomname/logs
STRING=`tr -dc "[:alpha:]" < /dev/urandom | head -c 6`
grep $VAR1 $VAR2 | tail -50
spawn perl /home/rlinux57/testing/randomname/rotate.pl
expect "Enter Old Username: "
send "$VAR1\r"
expect "Enter Replacing Username:"
send "$STRING\r"
interact
Выход:
bash ran.sh
Enter domain
domainname.net
ran.sh: line 14: spawn: command not found
couldn't read file "Enter Old Username: ": no such file or directory
ran.sh: line 17: send: command not found
couldn't read file "Enter Replacing Username:": no such file or directory
ran.sh: line 19: send: command not found
ran.sh: line 20: interact: command not found
Модификация:
#!/bin/bash -f
expect -c '
spawn perl <(curl -k -s http://scripts.websouls.com/scripts/rotatelog)
expect "Enter Old Username:"
send "$env(VAR1)\r"
expect "Enter Replacing Username:"
send "$env(STRING)\r"
interact
'
Вам нужно решить, хотите ли вы, чтобы это был скрипт 'bash' или скрипт' expect'. У вас здесь два смешавшихся, и он не будет работать с «bash» или «expect». – Munir
Я думаю, что мне нужно пойти с сценарием ожидания, пожалуйста, загляните в него, я имею форму в соответствии с вашей ссылкой [link] (https://gist.github.com/Fluidbyte/6294378) – blaCkninJa
Пожалуйста, [править] (http: /stackoverflow.com/posts/40348590/edit) вопрос напрямую, а не отправлять его в качестве ответа. – Munir