7.13 Shell commands

Shell commands may be executed directly from within Pyxplot by prefixing them with an ! character. The remainder of the line is sent directly to the shell, for example:

!ls -l

Semi-colons cannot be used to place further Pyxplot commands after a shell command on the same line.

\includegraphics[width=0.9cm]{cross.eps}

!ls -l ; set key top left

It is also possible to substitute the output of a shell command into a Pyxplot command. To do this, the shell command should be enclosed in back-quotes (‘), as in the following example:

a=`ls -l *.ppl | wc -l`
print "The current directory contains %d Pyxplot scripts."%(a)

It should be noted that back-quotes can only be used outside quotes. For example,

\includegraphics[width=0.9cm]{cross.eps}

set xlabel ’‘ls‘’

will not work. One way to do this would be

set xlabel `echo "'" ; ls ; echo "'"`

a better way would be to use the os.system or os.popen functions:

\includegraphics[width=0.9cm]{tick.eps}

fileList = os.popen("ls","r").read()
set xlabel fileList

Note that it is not possible to change the current working directory by sending the cd command to a shell, as this command would only change the working directory of the shell in which the single command is executed:

\includegraphics[width=0.9cm]{cross.eps}

!cd ..

Pyxplot has its own cd command for this purpose, as well as its own pwd command:

\includegraphics[width=0.9cm]{tick.eps}

cd ..