tôi có chức năng sau:Bash: màu Output với một Variable
function pause #for prompted pause until ENTER
{
prompt="$3"
echo -e -n "\E[36m$3" #color output text cyan
echo -e -n '\E[0m' #ends colored output
read -p "$*" #read keys from user until ENTER.
clear
}
pause "Press enter to continue..."
Tuy nhiên, chức năng của tôi từ chối áp dụng các màu xanh lá mạ vào chuỗi tôi vượt qua vào hàm.
Một câu hỏi tương tự đã được hỏi here, nhưng có vẻ như tôi đang làm tất cả mọi thứ một cách chính xác ...
Trích dẫn '$ *' làm cho kết quả được xem là một chuỗi. Trong lệnh 'read' của OP, tất cả các đối số được truyền cho hàm được xuất dưới dạng dấu nhắc. Không có gì đặc biệt sai khi làm theo cách đó. Điểm 1 của bạn về cơ bản là chính xác, tuy nhiên, để phù hợp với những gì OP dường như đang làm, nó phải là '$ @' thay vì '$ 3' (hoặc' $ 1'). Không có gì sai với chuỗi ANSI của OP - nó hoạt động cho tôi. –
Không có gì sai với 'read -p' cái gì đó '' – dschulz
Thậm chí không với' read -p' $ * "' – dschulz