Re: shell command
- To: mathgroup at smc.vnet.net
- Subject: [mg2823] Re: shell command
- From: villegas (Robert Villegas)
- Date: Sat, 23 Dec 1995 03:16:59 -0500
- Organization: Wolfram Research, Inc.
In article <4b859g$app at dragonfly.wri.com> Susan Rempe
<rempe at euclid.chem.washington.edu> writes:
> Running Mma on a unix machine, how does one
> execute a shell command like "cd temp"?
You can use Run, giving the OS command as a string:
In[19]:= Run["pwd"]
/private/tmp
Out[19]= 0
In[20]:= Run["ls"]
adim.pid m000001000520 openfiletmp001248
console.log m000001000976 selection.in
m000001000344 m000001001154 villegas
m000001000461 m000001002030
m000001000489 m000001004162
Out[20]= 0
Or just type an exclamation point followed by the command string:
In[21]:= !pwd
/private/tmp
The exclamation point needs to be the first character in the input
string.
You may not know this: when you issue an OS command such as 'ls'
or 'cd temp', it is executed in a subshell that is spawned by
Mathematica just for that one command. Once the command is finished,
the subshell is exited. If your command was to change something
about the shell environment, such as the current working directory,
then it will take effect in that temporary subshell and then be gone,
so it won't be of any use to you.
I suspect you want to change the environment of your Mathematica session
so you can work with files. Use one of the built-in file/OS commands
instead:
In[21]:= SetDirectory["/tmp"]
Out[21]= /private/tmp
In[22]:= FileNames[]
Out[22]= {adim.pid, console.log, m000001000344, m000001000461, m000001000489,
> m000001000520, m000001000976, m000001001154, m000001002030,
> m000001004162, openfiletmp001248, selection.in, villegas}
Robby Villegas