小编典典

使用默认值读取 bash 中的变量

all

我需要在 bash 脚本中从终端读取一个值。我希望能够提供用户可以更改的默认值。

# Please enter your name: Ricardo^

在此脚本中,提示是“请输入您的姓名:”,默认值为“Ricardo”,光标将位于默认值之后。有没有办法在 bash 脚本中执行此操作?


阅读 67

收藏
2022-05-24

共1个答案

小编典典

您可以使用参数扩展,例如

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

在括号中的提示中包含默认值是一种相当普遍的约定

零件有什么:-Richard作用?从 bash 手册:

${parameter:-word} 如果参数未设置或为空,则替换单词的扩展。否则,参数的值被替换。

另外值得注意的是…

在以下每种情况下,word 都会受到波浪号扩展、参数扩展、命令替换和算术扩展的影响。

因此,如果您使用webpath=${webpath:-~/httpdocs},您将得到/home/user/expanded/path/httpdocsnot~/httpdocs等的结果。

2022-05-24