デフォルト値を持つbashの変数を読み取る 質問する

デフォルト値を持つbashの変数を読み取る 質問する

bash スクリプトでターミナルから値を読み取る必要があります。ユーザーが変更できるデフォルト値を提供できるようにしたいと思います。

# Please enter your name: Ricardo^

このスクリプトでは、プロンプトは「名前を入力してください:」で、デフォルト値は「Ricardo」であり、カーソルはデフォルト値の後にあります。これを bash スクリプトで実行する方法はありますか?

ベストアンサー1

使用できますパラメータ拡張例えば

read -p "Enter your name [Richard]: " name
name=${name:-Richard}
echo $name

プロンプトに括弧で囲んだデフォルト値を含めることは、かなり一般的な慣例です。

この:-Richard部分は何をするのでしょうか? bash マニュアルより:

${parameter:-word}パラメータが設定されていないか null の場合、 word の展開が置換されます。それ以外の場合は、パラメータの値が置換されます。

また、注目すべき点は...

以下の各ケースでは、 word はチルダ展開、パラメータ展開、コマンド置換、および算術展開の対象となります。

したがって、 を使用すると、 などwebpath=${webpath:-~/httpdocs}の結果は得られません/home/user/expanded/path/httpdocs~/httpdocs

おすすめ記事