shell - 1>/dev/null 2>&1 & pid1=$!意思?

标签 shell parallel-processing

我正在学习如何并行运行多个进程

  ./script1.sh param1 1>/dev/null 2>&1 &
  pid1=$!
  ./script1.sh param2 1>/dev/null 2>&1 &
  pid2=$!

我不确定这里发生了什么:
   1>/dev/null 2>&1
   pid1=$!

最佳答案

将标准输出(文件句柄 1)重定向到/dev/null

1>/dev/null

将标准错误(文件句柄 2)重定向到标准输出
2>&1

将最近的后台命令的 PID 分配给变量 pid1(更多信息请参见 bash 手册页,special parameters)
pid1=$!

结果是标准输出和标准错误都重定向到/dev/null

更多例子可以在这里找到:http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

通常一个程序会打开三个文件:标准输入、标准输出和标准错误。您可以阅读更多关于 standard streamsredirection在维基百科。

脚本的以下部分:
./script1.sh param1 1>/dev/null 2>&1 &
pid1=$!

翻译成简单的英语:

从当前目录 ./运行程序 script1.sh带参数 param1并将标准输出重定向到/dev/null 1>/dev/null并将标准错误重定向到标准输出 2>&1并让程序在后台运行 & .将刚刚在后台启动的程序的PID赋值给pid1 pid1=$! .

关于shell - 1>/dev/null 2>&1 & pid1=$!意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964016/

相关文章:

linux - 在 Ubuntu 下复制和重命名文件(.bin 到 .pdf)的脚本

linux - find -exec 不运行 exec 部分

bash - 在bash中读取和解析文件及其参数

c++ - boost 正交状态的状态图并行执行

scala - 如何进行与硬件无关的并行编程?

c# - 如何增加 Parallel.For 中特定值的索引?

bash - 在 MongoDB 查询中使用 shell 变量

linux - unix shell 设置命令

python - 并行填充 numpy 数组?

c - MPI - 按订单打印