Execute a system command
You are encouraged to solve this task according to the task description, using any language you may know.
In this task, the goal is to run either the ls
system command, or the pause
system command.
AppleScript
do shell script "ls" without altering line endings
C
Compiler: GCC 4.0.1
Platform: BSD
#include <stdlib.h> int main() { system("ls"); }
C++
Compiler: Visual C++ 2005
system("pause");
Haskell
Interpreter: GHCi 6.6
import System.Cmd main = system "ls"
IDL
$ls
Will execute "ls" with output to the screen.
spawn,"ls",result
will execute it and store the result in the string array "result".
spawn,"ls",unit=unit
will execute it asynchronously and direct any output from it into the LUN "unit" from whence it can be read at any (later) time.
Objective-C
Compiler: GCC 4.0.1 (apple)
NSTask runs an external process with explicit path and arguments.
void runls() { [[NSTask launchedTaskWithLaunchPath:@"/bin/ls" arguments:[NSArray array]] waitUntilExit]; }
If you need to run a system command, invoke the shell:
void runSystemCommand(NSString *cmd) { [[NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:[NSArray arrayWithObjects:@"-c", cmd, nil]] waitUntilExit]; }
Or use the C method above.
Perl
Interpreter: Per;
Note the use of grave quotes instead of "normal" single quotes.
my $results = `ls`;
Alternate system call
system "ls";
Python
Interpreter: Python 2.5
import os code = os.system('ls') # Just execute the command, return a success/fail code output = os.popen('ls').read() # If you want to get the output data
or
Interpreter:Python 2.4 (and above)
import subprocess output = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE).stdout print output.read()
Note: The latter is the preferred method for calling external processes, although cumbersome, it gives you finer control over the process.
UNIX Shell
UNIX shells are designed to run system commands as a default operation.
ls
If one wants to capture the command's standard output:
CAPTUREDOUTPUT=$(ls)