编号 (&Number) 起什么作用?

编号 (&Number) 起什么作用?

我知道&在命令末尾加上 会使它在后台运行。我想知道这是什么&Number意思?我正在查看一个脚本,其中有些命令使用 运行&1,有些命令使用 运行&2

答案1

这应该迁移到 SuperUser,但答案是它们引用文件描述符。&1 是标准输出,&2 是标准错误,因此程序运行如下:

./program 2>&1

将描述符 2(标准错误)重定向到描述符 1(标准输出)

它的常见用法是做这样的事情:

./program >file.txt 2>&1

将标准输出重定向到文件,然后将标准错误重定向到标准输出,以便您可以在文件中捕获常规输出和错误输出。

答案2

对于 Bourne 类型的 shell(bash 等)

mycmd > /output/file 2>&1

将标准错误输出(文件描述符 2)与标准输出(文件描述符 1)合并,并将它们都写入/output/file

答案3

'&' 表示文件描述符。&1 是 stdout,&2 是 stderr。

如果你还没有找到一个学习 Shell 脚本的好网站,我推荐这个:

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

答案4

&1是标准输出(STD_OUT),&2是标准错误流(STD_ERR

相关内容