Bash

暫停執行命令列表

  • April 1, 2020

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

像這樣執行:

/bin/bash commands

通過管道傳輸文件以bash使文件通過bash. 在這種情況下read,從標準輸入讀取,從管道流而不是從終端讀取。它消耗echo 'ok'. 通過將文件指定為參數,bash您仍然可以執行它,但這次 stdin 不會被重定向。

我假設你想這樣執行。比較runningbash script.sh和 和有什麼不一樣./script.sh

引用自:https://unix.stackexchange.com/questions/577198