나는 다음과 같은 코드를 발견했습니다.
function cursorBack() {
echo -en "\033[$1D"
}
...
tput civis
...
cursorBack 1
숫자는 무엇을 하는가?
답변1
이는 함수의 매개변수입니다. $1
문자열의 echo 부분에 유의하세요. 이것은 bash 함수에서 사용되는 첫 번째 매개변수입니다. 다른 매개변수(예: cursorBack 5
even ) 를 사용하여 함수를 실행해 보고 cursorBack foo
어떤 일이 일어나는지 확인하세요.
echo 명령의 첫 번째 부분은 ANSI 이스케이프이고 그 뒤에 함수 인수(숫자), 마지막으로 문자가 옵니다 D
. 이 문자는 뒤로 이동(문자를 삭제하지 않고 삭제라고 생각함)을 의미하므로 n 위치(예에서는 1 위치) 뒤로 이동합니다.
논리적으로 말하면 foo
인수로 사용하면 예상한 대로 수행되지 않습니다. 이 특별한 경우 인수는 단지 (정수) 숫자여야 합니다.