Bash 中函数后面的数字有什么作用?

Bash 中函数后面的数字有什么作用?

我遇到过这样的代码:

function cursorBack() {
   echo -en "\033[$1D"
}
...
tput civis 
...
cursorBack 1

号码有什么作用?

答案1

它是函数的一个参数:注意$1echo 字符串中的部分:这是 bash 函数使用的第一个参数。尝试使用不同的参数运行该函数,例如cursorBack 5,甚至cursorBack foo,看看会发生什么。

请注意,echo 命令的第一部分是 ANSI 转义,后跟函数参数(数字),最后是字母D。该字母意味着后退(认为删除,而不删除该字符),因此它将其向后移动 n 个位置(在示例中为 1 个位置)。

从逻辑上讲,用作foo参数将不会做它应该做的事情:在这种特定情况下的参数应该只是(整数)数字。

相关内容