Comparative Examples in MSH and KSH…

An excellent article comparing some features of PowerShell versus traditionnal Unix shell.

It’s here : 

Example 1

To stop all processes that begin with the letter “p” on a UNIX system, an administrator would have to type the following shell command line:

$ ps -e | grep ” p” | awk ‘{ print $1 }’ | xargs kill

The ps command retrieves list of processes and directs (|) the grep command to determine which process begins with “p”; which in turn directs (|) the awk command to select the 1st column (which is in the process id) and then passes (|) those to the xargs command which then executes the kill command for each process.  The fragility of this command line may not be evident, but if the ps command behaves differently on different systems, where the “-e” flag may not be present, or if the processed command is not in column 1 of the output, this command-line procedure will fail.


MSH> get-process p* | stop-process

Thus, the command line may now be expressed as “get the processes whose name starts with “p” and stop them”.  The get-process Cmdlet takes an argument that matches the process name; the objects returned by get-process

Comments (0)