Mam następującą funkcję:Bash: Kolorowy Wyjście z 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..."
Jednak moja funkcja odmawia zastosowania koloru cyjan na ciąg I przejść do funkcji.
Podobny pytano here, ale wydaje się, że robię wszystko poprawnie ...
Cytując '$ *' powoduje, że wynik jest postrzegany jako pojedynczy ciąg. W poleceniu OP 'read' wszystkie argumenty przekazane do funkcji zostały wyprowadzone jako zachęta. Nie ma nic szczególnie złego w robieniu tego w ten sposób. Twój punkt 1 jest zasadniczo poprawny, jednak aby być zgodnym z tym, co OP robi, powinno być '$ @' zamiast '$ 3' (lub' $ 1'). Nie ma nic złego w sekwencji ANSI OP - działa to dla mnie. –
Nic nie jest nie tak z 'read -p" coś "' – dschulz
Nawet z 'read -p" $ * "' – dschulz