我遇到过这样的代码:
function cursorBack() {
echo -en "\033[$1D"
}
...
tput civis
...
cursorBack 1
号码有什么作用?
答案1
它是函数的一个参数:注意$1
echo 字符串中的部分:这是 bash 函数使用的第一个参数。尝试使用不同的参数运行该函数,例如cursorBack 5
,甚至cursorBack foo
,看看会发生什么。
请注意,echo 命令的第一部分是 ANSI 转义,后跟函数参数(数字),最后是字母D
。该字母意味着后退(认为删除,而不删除该字符),因此它将其向后移动 n 个位置(在示例中为 1 个位置)。
从逻辑上讲,用作foo
参数将不会做它应该做的事情:在这种特定情况下的参数应该只是(整数)数字。