我在Solaris 10中编写的bash脚本中有以下代码段:
printf "port(389)="
read PORT
if [[ $PORT == "" ]]; then
PORT=389
fi
我想要的是,如果用户点击回车键,则端口应设置为389。 上面的代码段似乎没有用。
有什么建议吗?
答案 0 :(得分:1)
这会提示用户输入,如果单独输入,则将port
的值设置为默认值“389”:
read -rp "port(389)=" port
port="${port:-389}"
答案 1 :(得分:0)
如果您将-e
传递给read
,则可以使用-i
为提示指定初始值。
答案 2 :(得分:0)
如果用户没有输入任何内容,那么$PORT
将被替换为任何东西 - 使用原始Bourne shell进行此工作的古老惯例是:
if [ "x$PORT" == "x" ]; then
虽然更现代的shell(即实际的bash,但不是Solaris 10 / bin / sh) 一个古老的Bourne shell)应该能够处理:
if [[ "$PORT" == "" ]]; then
甚至
if [[ -z "$PORT" ]]; then
答案 3 :(得分:0)
这不完全是你提出的问题,但Solaris有一套实用程序用于此类事情。
PORT=`/usr/bin/ckint -d 389 -p 'port(389)=' -h 'Enter a port number'`
查看其他/ usr / bin / ck *实用程序,提示用户输入其他类型的数据,包括文件或用户名等。
答案 4 :(得分:0)
只有shell的另一种方式 - 尝试参数替换:
read port
port=${port:-389}