簡體   English   中英

在bash腳本中建議用戶輸入的答案

[英]Suggest answer to user input in bash scripting

這是一個例子:

#!/bin/bash
echo -e "Enter IP address: \c"
read
echo $REPLY

但我想讓用戶更容易回答。 我想為用戶提供答案。 它應該看起來像這樣:

輸入您的IP:192.168.0.4

並且用戶只需按Enter鍵即可同意192.168.0.4,或者可以刪除一些字符(例如,刪除“4”,一個退格鍵並輸入3)。

如何做出這樣的輸入? bash有可能嗎?

bash的閱讀有readline支持(編輯:Jonathan Leffler建議將提示讀入)

#!/bin/bash
read -p "Enter IP address: " -e -i 192.168.0.4 IP
echo $IP

我這樣做的方法是在括號中提示默認值 ,然后使用默認值參數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"

產量

$ ./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

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

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

這不提供編輯選項。

編輯是不實際的,但通常做以下事情:

echo -e "Enter IP address [$default]: \c"
read answer
if [ "$answer" = "" ]; then
     answer="$default"
fi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM