Server.run_shell
Run a shell command through tmux and collect its output.
Source and package
-
Description#
The command runs in tmux's own environment, not the caller's. Output lines are
TmuxTextbecause a shell can emit any bytes.Errors
Returns an error when tmux refuses the command.
Also refuses outright on tmux 3.3, 3.3a, and 3.4, with
Error::CapabilityDefective. Those releases sendrun-shelloutput into a pane's copy-mode buffer instead of to the client, and still exit zero, so the command appears to have produced nothing. Reporting an empty listing there would be a wrong answer the caller could not detect. 3.2a and 3.5 onwards are unaffected.Cancel safety
The effect may have happened, and may still be happening. The shell command runs under the tmux server, not this dispatch, so a dropped call stops waiting for it without stopping it, and its output is lost.
tmux command#
The tmux commands behind run_shell.
tmux C API#
The C declarations in tmux that implement these commands.
In other ports#
Run a shell command through tmux
| Language | Equivalent |
|---|---|
| Python | libtmux |
| Ruby | Lib |
| Haskell | No public Haskell equivalent is implemented; the current modules expose scalar values and version parsing. |
| TypeScript | server |
| Go | tmux |
| Java | io |
| C# | Lib |
| C++ | libtmux:: |
| Swift | Server.run(_:in:) types a command into a pane rather than running it on the host |
| OCaml | No direct public OCaml equivalent is recorded for this operation. |
| Perl | No dedicated equivalent in the selected Perl surface. Explicit Server::cmd remains available for native tmux commands. |
No equivalent is recorded in Lua, PowerShell, Julia, Erlang, Elixir, Common Lisp, Clojure, Kotlin, Scala or F#.