这是一个例子:
#!/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)
完成你想要的大部分经典方法是:
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)
这不提供编辑选项.