Skip to Content
Exploring Expect
book

Exploring Expect

by Don Libes
December 1994
Intermediate to advanced
606 pages
16h 7m
English
O'Reilly Media, Inc.
Content preview from Exploring Expect

The system Command

The system command is similar to the exec command. But unlike the exec command, system runs UNIX commands without redirecting either of the standard output or standard error.

In early releases of Tcl, there was no support for running programs without unredirected I/O. Now it is possible, yet the system command remains—partly for historical reasons and partly because the interface is simpler than exec for a few common problems.

For example, if the script needs to allow a program such as more to directly interact with a user, this is accomplished slightly more easily with system. Compare:

system more file
exec   more file >@ stdout 2>@ stderr

The system command is also much more efficient than exec. If you are executing many fast UNIX commands (e.g., renaming or removing lots of files via mv or rm), the system-based approach will operate more quickly. On the other hand, if you are executing long-running commands or just a few commands, the difference between exec and system is not likely to be important.

Another difference between system and exec is in the way arguments are handled. The exec command passes the original arguments to the program untouched. In contrast, the system command appends them together in the style of the concat command. Consider the following two commands:

exec    Eprog a b "c d"
system  Sprog a b "c d"
system "Sprog a b  c d"

With exec, Eprog is called with three arguments (”a“, "b“, and "c d“) while both invocations of Sprog called with system receive ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

AI Agents in Action

AI Agents in Action

Micheal Lanham
Learning Go

Learning Go

Jon Bodner

Publisher Resources

ISBN: 9781565920903Supplemental ContentErrata Page