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