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