Скрипт Perl в пакетном скрипте запрашивает ввод данных пользователем. Как автоматически проанализировать этот ввод в пакетном скрипте? - PullRequest
0 голосов
/ 02 октября 2019

У меня есть несколько папок, и мне нужно запустить Perl-скрипт внутри каждой. Я создаю цикл в командном файле и выполняю Perl в каждой папке. Проблема в том, что скрипт Perl запрашивает ввод данных пользователем и останавливает цикл. Как автоматически проанализировать ввод в сценарий Perl без прерывания цикла, чтобы запросить ввод данных пользователем?

Извините, если на этот вопрос уже был дан ответ, я новичок как в stackoverflow, так и в пакетном сценарии.

for (( i = 0; i <= 6; i++ ))      
do

    for (( j = 0 ; j <= 6; j++ )) 
    do
          cd $i$j*
          ~/scripts/script.pl log.out
          #This perl script requires user input, how do I input it here automatically.
          cd ..

done
done

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Если ввод небольшой, вы можете встроить свой скрипт и передать его в программу perl, используя конструкцию <<. В противном случае рассмотрите возможность помещения ввода в файл и перенаправления стандартного ввода, используя <. </p>

for (( i = 0; i <= 6; i++ ))      
do

    for (( j = 0 ; j <= 6; j++ )) 
    do
          cd $i$j*
          ~/scripts/script.pl log.out <<__INPUT__
Your Input here
multiple lines are OK
__INPUT__
          #This perl script requires user input, how do I input it here automatically.
          cd ..

    done
done
0 голосов
/ 02 октября 2019

Вы можете использовать здесь документы для генерации ввода:

$ read -p 'Does this really work? (Y/N) ' OK <<-EOF
Y
EOF
$ echo $OK
Y
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...