Reference no: EM131695373 
                                                                               
                                       
Assignment
The example output in the links above show the results of a program run through a series of tests. The examples show what the PATH environment variable was set to for the test case, the command that was run, the expected results and the output of the program.
PATH   ==> /usr/bin:/usr/local/bin:/usr/bin/X11
RAN    ==> mar1.sh -a tar
RESULT ==> PASSED
EXPECTED RESULT ==> /usr/bin/tar
PROGRAM OUTPUT  ==> /usr/bin/tar
You script will should out put the results (the data after the ==> in the EXPECTED RESULT) section.
Write a shell script to locate executable files. This script takes a list of file names from the command line and determines which would be executed had these names been given as commands.
•	The search path should be based only on the user's PATH environment variable. You shall not use the Unix which command, the ksh whence (type) command, the locate command, or the bash type command.
•	The code for the script shall not use the UNIX ls command to determine if the file is executable or if it exists.
•	The script should find only the first occurrence of the "file". If the file is not found, the script  the following
<command> NOT FOUND
<command> would be replaced by the name of the "file" you didn't find.
•	If the first parameter is '-a', then the script should print all occurrences of the executable file in the user's path. Again if the file was not on the path, an error message should be displayed.
•	The find command shall not be used.
•	A project using  temporary files will not be graded.
Note:
•	The shell variable PATH defines the search path for the directory containing the command. Alternative directory names are separated by a colon (:). The current directory can be specified by two or more adjacent colons, or by a colon at the beginning or end of the path list.
•	If the command name contains a / then the search path is not used, you just check if the command/file specified is executable and not a directory. Otherwise, each directory in the path is searched for an executable file.
usage: mywhich [-a] command ....
Examples: The locations of these programs may vary on different systems and the users PATH environment variable.
prompt>mywhich ls
 /bin/ls
prompt>mywhich -a cc
 /bin/cc
 /usr/ucb/cc
prompt>mywhich ./mywhich
 ./mywhich
prompt>mywhich /bin/ls
 /bin/ls
prompt>mywhichfooblar
 fooblar not found
prompt>mywhichkshshcsh bash
 /usr/bin/ksh
 /bin/sh
 /bin/csh
 /usr/local/bin/bash
The PDF file (in the folder that says Assignment 1 example pdf) has a flow chart example of how to program Assignment 1.
Here is some psuedo code:
BEGIN 
     set FINDALL to false
     IF $1 equals -a THEN
         set FINDALL to TRUE
         dispose of $1
     END-IF
     FOR each Positional Parameter ($file) DO
         IF $file is a pathname THEN
             IF if $file is executable and not a directory THEN
                 echo $file
             ELSE
                 echo $file  is NOT Found
             END-IF
         ELSE
             set FOUND to false
             # Don't forget to handle the special cases of PATH
             FOR  P in PATH (: separated list) DO
                 IF $P/$file is executable and not a directory THEN
                     set FOUND to true
                     echo $P/$file
                     IF FINDALL is FALSE THEN
                         BREAK FROMTHE for  LOOP
                     END-IF
                 ELSE
                 END-IF
                 IF FOUND is FALSE THEN
                     echo $file is NOT FOUND
                 END-IF
             END-FOR
         END-IF
     END-FOR
 END