我需要在 bash 脚本中从终端读取一个值。我希望能够提供用户可以更改的默认值。
# Please enter your name: Ricardo^
在此脚本中,提示是“请输入您的姓名:”,默认值为“Ricardo”,光标将位于默认值之后。有没有办法在 bash 脚本中执行此操作?
您可以使用参数扩展,例如
read -p "Enter your name [Richard]: " name name=${name:-Richard} echo $name
在括号中的提示中包含默认值是一种相当普遍的约定
零件有什么:-Richard作用?从 bash 手册:
:-Richard
${parameter:-word} 如果参数未设置或为空,则替换单词的扩展。否则,参数的值被替换。
${parameter:-word}
另外值得注意的是…
在以下每种情况下,word 都会受到波浪号扩展、参数扩展、命令替换和算术扩展的影响。
因此,如果您使用webpath=${webpath:-~/httpdocs},您将得到/home/user/expanded/path/httpdocsnot~/httpdocs等的结果。
webpath=${webpath:-~/httpdocs}
/home/user/expanded/path/httpdocs
~/httpdocs