我知道&
在命令末尾加上 会使它在后台运行。我想知道这是什么&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 脚本的好网站,我推荐这个:
答案4
&1
是标准输出(STD_OUT
),&2
是标准错误流(STD_ERR
)