Test #4B Shell Programming Shell Programming - Points: 68 (12 of 35%) (I will pick up this file online from your account after the test ends.) Write an executable shell script named test4.sh that will do the following actions, in the exact order given below. You will write approximately 40-45 lines of executable code. For full marks, you must put a one-line comment containing the step number in front of the executable code in each step. Do not put a Step Number comment as the first line of the file! Summary and Purpose (what this script will do): This script expects zero or one source file arguments. If the argument source file is missing, prompt and read it from the user. Detect whether the source file is a C language or C++ language program, and compile the program with the correct compiler. Save the warning messages for later review. ________________________________________ 1. [Points: 5] Structure your script using the standard nine-part format given in DAT2330 Notes file script_style.txt; however, do not include the Purpose or Assignment Label (parts 4&5). 2. [Points: 7] Verify that there is either zero or one command line argument; otherwise, print an error message and exit the script with an error status. (i.e. Exit if there is more than one argument.) 3. [Points: 7] If there is no command line argument, prompt the user to enter the missing source file name and read the name from standard input. Put the source file name (either the command line argument or what the user entered from standard input) into the variable myprog for use in the rest of the script. 4. [Points: 2] Display this exactly punctuated sentence on stdout: Processing file 'XXX'. where XXX is the contents of the myprog variable containing the file name that the user specified. 5. [Points: 14] Verify that the path named by the myprog variable is a file; otherwise, exit non-zero with an error message. (i.e. Exit if the path is not a file.) Verify that the file named by the myprog variable is readable; otherwise, exit non-zero with an error message. (i.e. Exit if the file is not readable.) 6. [Points: 10] If the file named by the myprog variable contains the (9-character) string