我有许多文件夹,并且每个文件夹中都需要运行一个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
答案 0 :(得分:0)
您可以使用here-docs生成输入:
$ read -p 'Does this really work? (Y/N) ' OK <<-EOF
Y
EOF
$ echo $OK
Y
答案 1 :(得分:0)
如果输入很小,则可以内联到脚本中,并使用<<构造将其提供给perl程序。否则,请考虑将输入放入文件中,并使用<。
重定向标准输入。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