这个 bash 函数是如何工作的?

Sta*_*ann 1 shell bash dash shell-script

我正在看这个简短的例子,但我没有看到这个函数是如何工作的:

function EXT_COLOR () { echo -ne "\[\033[38;5;$1m\]"; }
Run Code Online (Sandbox Code Playgroud)

AFAIK-ne代表不相等。我们在这里比较什么?我只看到一个变量(字符串):"\[\033[38;5;$1m\]". 看起来它与比较的结果相呼应,但没有与之比较的变量。

bah*_*mat 6

-ne仅在if [ … ]声明中表示“不等于” 。在这种情况下-ne是一个选项echo。您可以同样轻松地使用-en.

来自bash(1)

如果 -n 指定,则尾随换行符被抑制。如果-e给出该选项,则启用对以下反斜杠转义字符的解释。

在这个例子中没有比较。只是echo

  • 可能更清楚,您也可以轻松地使用“-n -e”——这是两个选项,echo 只支持将它们合并在一个破折号下,因为它是明确的 (2认同)