暫停執行命令列表

暫停執行命令列表

我有一個包含 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

相關內容