1. ``
Backtick
- определенный в Kernel
1. a) %x{}
Процент X < альтернативный синтаксис для Backtick
- определенный в parse.y, см. обсуждение
2. system()
3. fork()
4. open()
- открыть трубку
- Kernel # open
4.a. < t25 < ведет себя так же, как open()
- открыть трубку
- IO # popen
4.b. open("|-")
- fork to the pipe
4.c. < t28 < ведет себя так же, как open("|-")
- fork to the pipe
- см. обсуждение
5. Open3.popen3()
-
require 'open3'
- stdlib Open3
6. PTY.spawn()
-
require 'pty'
- stdlib PTY
7. Shell.transact()
-
require 'shell'
- stdlib Shell
Когда нужно отказаться от надежного обратного тика для одного из более сложных методов?
Изменить 1. Большое спасибо Avdi Grimm за сообщения, описывающие пример использования каждого метода: # 1 (& gist); # 2 (& gist); # 3.
Они являются фантастическими ресурсами для ответа How, но не в явном виде отвечают, когда каждый из них должен использоваться или почему, и как таковые IMHO не являются полными ответами на этот вопрос.