3

スクリプトには「はい/いいえ」の答えがたくさんあります。スクリプトのサイズを最小化する関数を作成するにはどうすればよいですか?

私は次のものを持っています:

function ask {
    read -n 1 -r
    if [[ $REPLY =~ ^[Yy]$ ]]
    then
            return 1;
    else
            exit
            echo "Abort.."
    fi
}

ask "Continue? [y/N] "

正常に動作します。しかし、「続行しますか?[y/N]」という質問は表示されません。このテキストを自分の関数に「転送」するにはどうすればよいですか。

4

1 に答える 1

4

$1変数を使用できます。

function ask {
    echo $1        # add this line
    read -n 1 -r
    if [[ $REPLY =~ ^[Yy]$ ]]
    then
            return 1;
    else
            exit
            echo "Abort.."
    fi
}

編集: @cdarkeで指摘されているように、読み取りの「-p」スイッチのおかげで「echo」呼び出しを回避できます。

# echo $1
# read -n 1 -r
read -n 1 -r -p "$1"
于 2013-03-06T07:39:32.413 に答える