暂停执行命令列表

暂停执行命令列表

我有一个包含 bash 命令列表的文件,如下所示:

echo 'foobar'
echo 'helloworld'
echo 'ok'

我可以通过简单地通过管道来执行这些命令,/bin/bash如下所示:

cat commands | /bin/bash

现在,如何在中间暂停执行并等待用户输入?使用read似乎不起作用。

echo 'foobar'
echo 'helloworld'
read -p 'Press ENTER to continue'
echo 'ok'

答案1

像这样执行:

/bin/bash commands

将文件通过管道传输到bash使文件通过 的 stdin 传输bash。在这种情况下read,从标准输入读取,从管道流而不是从终端读取。它消耗echo 'ok'.通过将文件指定为参数,bash您仍然可以执行它,但这次标准输入不会重定向。

我假设你想像这样执行。比较bash script.sh运行和 和有什么不一样./script.sh

相关内容