input() {
read -p $'\e[31m\e[1m $1 [Y/n] \e[0m' -n 1 -r
}
input "test"
exit
이것은 단지 "$1"을 텍스트 한 줄로 인쇄합니다. "test"가 인쇄되지 않는 이유는 무엇이며 그렇게 하려면 어떻게 해야 합니까?
답변1
문제는 변수가 작은따옴표 내에서 확장되지 않는다는 것입니다. 당신은 이것을 찾고 있습니다:
read -p $'\e[31m\e[1m '"$1"$' [Y/n] \e[0m' -n 1 -r
이제 이스케이프 시퀀스만 작은따옴표로 묶이고 이스케이프 $1
시퀀스는 큰따옴표로 묶습니다.