2012-05-10 24 views
10

Tôi cần sau mẫu bash script để hành xử như sau:BASH: Khi đọc đầu vào người sử dụng, Nhập mang dòng mới

echo -e "Enter name: \c" 
read U_IP_NAME 
echo -e "You said your name is : $U_IP_NAME" 

chí đầu ra này để:

Enter name: Alok 
You said your name is : Alok 

Nhưng tôi muốn nó be:

You said your name is : Alok 

Có cách nào để đạt được điều này không?

[Solved với giải pháp cho bởi: mouviciel]

+0

bạn không muốn dòng đầu tiên "Nhập tên : Alok "? –

+0

Đó là chính xác những gì tôi muốn .. Tôi muốn hoặc là echo trên dòng cuối cùng, hoặc trong khi đọc đầu vào của người dùng, làm cho bàn phím của "nhập" KHÔNG đi đến dòng tiếp theo. –

+0

Nếu tôi có thể ở trên cùng một dòng, echo -e "\ rblahblah" sẽ giúp (Điền lại dòng từ offset 0'th). Nhưng Làm cách nào để tôi ở trên cùng một dòng sau khi người dùng truy cập vào? –

Trả lời

12

Bạn muốn di chuyển con trỏ lên một dòng. Điều này đạt được với tput cuu1:

echo -e "Enter name: \c" 
read U_IP_NAME 

tput cuu1 

echo -e "Your said your name is : $U_IP_NAME" 

Thông tin thêm với man tputman terminfo.

+0

Điều này hoạt động hoàn hảo. Cảm ơn rất nhiều! –

7
read -p "Enter your uip-name: " U_IP_NAME 

-p cho dấu nhắc

Các vấn đề liên quan