【发布时间】:2018-02-07 17:16:30
【问题描述】:
我有一个 Bash 脚本,它顺序运行一些从文件中读取的 Perl 脚本。这些脚本需要按 Enter 才能继续。
奇怪的是,当我运行脚本时,它从不等待输入,而是继续。我假设 Bash-Script 中的某些内容被解释为 Enter 或其他一些按键,并使 Perl 继续运行。
我确定有解决方案,但我真的不知道要寻找什么。
我的 Bash 有这个循环遍历 Perl 脚本列表(在 seqfile 中列出)
while read zeile; do
if [[ ${datei:0:1} -ne 'p' ]]; then
datei=${zeile:8}
else
datei=$zeile
fi
case ${zeile: -3} in
".pl")
perl $datei #Here it just goes on...
#echo "Test 1"
#echo "Test 2"
;;
".pm")
echo $datei "is a Perl Module"
;;
*)
echo "Something elso"
;;
esac
done <<< $seqfile;
您注意到带有echo "Test 1/2" 的两条注释行。我想知道它们是如何显示的。
实际上它们是写在彼此下面的,就像有一个 Enter-Press:
Test 1
Test 2
Perl 脚本的输出是正确的,我只需要弄清楚如何强制从用户而不是脚本读取输入。
【问题讨论】:
-
在命令行上执行 perl 脚本会发生什么。它会立即返回提示吗?
-
打印 $datei 的值以确保是你想要的。
-
@LuisMuñoz - 如果脚本在命令行上执行,它会按预期工作(在使用相同的命令多次执行各种 Perl 脚本后,我决定进行一些自动化操作)。实际上,Bash 脚本有效 - 它只是跳过我想要提供的输入。
标签: bash perl user-input