次の段落(セクション)を実行するかどうかを尋ねるbashスクリプトを作成するには?

次の段落(セクション)を実行するかどうかを尋ねるbashスクリプトを作成するには?

bashスクリプトを実行するとき。私が持っていることを考えると

set -x

私は何が起こっているかを視覚的に観察します。しかし、いくつかの部分では停止したいと思い、次の行を続けるかどうか尋ねます。

知っている:

set -e

これはエラーが発生したときにbashスクリプトが終了することを保証しますが、使用したくありません。代わりに、私は私のコードを分類し、bashスクリプトが時々続行する必要があるかどうか尋ねたいと思います。

答え1

read対話型スクリプトに使用できます。

たとえば、

echo "Do you want to continue?(yes/no)"
read input
if [ "$input" == "yes" ]
then
echo "continue"
fi

input提供されているif条件に応じてさらに進めることができます。

編集する

複数の場所で使用するには、関数を作成し、ユーザーの介入が必要なときはいつでも呼び出すことができます。

答え2

続行するには確認を受けるにはread組み込みバッシュが使えます。ただし、すべての行に対してこれを行う場合は、必要な場所に複数の行を挿入したくありません。

さらに、あなたは望んでいません完全な答えを入力してくださいプログラムを続行する必要があるかどうか(例:「yes」または「y」)Enterキーを押します続いて停止するのに十分です。Ctrl+を押すCとてもシンプルでとても明確です。

しかし、今、これらすべての確認チェックをコードに追加しました。何度も実行したい場合はどうすればよいですか?確認する必要はありません?わかりました、できればいいでしょう。オフ。これには変数を使用します。

あなたは機能中間行に次を追加できます。

#!/bin/bash

#useConfirm=true - comment out the line below like this to disable confirmation
useConfirm=true

confirm() {
   [ "$useConfirm" = true ] && read -p "Proceed? (Enter) - (^C to abort)"
}

echo a
confirm
echo b
echo c
confirm
echo d

関連情報