在bash脚本中建议用户输入的答案

Lar*_*bar 22 bash user-input

这是一个例子:

#!/bin/bash
echo -e "Enter IP address: \c"
read
echo $REPLY
Run Code Online (Sandbox Code Playgroud)

但我想让用户更容易回答.我想为用户提供答案.它应该看起来像这样:

输入您的IP:192.168.0.4

并且用户只需按Enter键即可同意192.168.0.4,或者可以删除一些字符(例如,删除"4",一个退格键并输入3).

如何做出这样的输入?bash有可能吗?

Mar*_*wis 28

bash的阅读有readline支持(编辑:Jonathan Leffler建议将提示读入)

#!/bin/bash
read -p "Enter IP address: " -e -i 192.168.0.4 IP
echo $IP
Run Code Online (Sandbox Code Playgroud)


Sie*_*geX 19

我这样做的方法是在括号中提示默认值,然后使用默认值参数expand设置IP为192.168.0.4如果他们只是按Enter键,否则它将具有他们输入的值.

#!/bin/bash
default=192.168.0.4
read -p "Enter IP address [$default]: " IP
IP=${IP:-$default}
echo "IP is $IP"
Run Code Online (Sandbox Code Playgroud)

产量

$ ./defip.sh
Enter IP address [192.168.0.4]:
IP is 192.168.0.4

$ ./defip.sh
Enter IP address [192.168.0.4]: 192.168.1.1
IP is 192.168.1.1
Run Code Online (Sandbox Code Playgroud)


Jon*_*ler 8

完成你想要的大部分经典方法是:

default="192.168.0.4"
echo -e "Enter IP address ($default): \c"
read reply
[ -z "$reply" ] && reply=$default
echo "Using: $reply"
Run Code Online (Sandbox Code Playgroud)

这不提供编辑选项.