Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I am in an introductory Unix course and need some assistance with an assignment.

ID: 3857919 • Letter: I

Question

I am in an introductory Unix course and need some assistance with an assignment. I have included pictures of the assignemnt instrutions. I have two questions...

1. How do I get the next year to be computed, not a fixed value of "2018"?

2. How do you get the 'cowsay' outputs to print in the same column? How I have it now prints the outputs in three columns but it cuts off part of the calendar since the width is set to 140. (the last image shows what I have now)

Step i Change directory to your -/bin subdirectory: % cd ~/bin Create a new Bash shell script called ca12018; if you use emacs, you can do it with % emacs -nw ca12018 with vi, like: % vi ca12018 (Hint: you may want to also login with a second window, if you don't want to use a "shell" buffer inside of emacs for testing your script.) Your shell script should create output that looks like this 2018 March / If you stand on your head, you will get February Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa January footprints in your hair. 1 2 3 4 5 6 1 2 3 7 8 9 10 11 12 13 4 5 6 78 9 10 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 25 26 27 28 29 30 31 / You teach best what you most need to I learn. April June May Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 1 2 3 4 5 8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9 15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16 22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23 29 30 27 28 29 30 31 24 25 26 27 28 29 30 July September August Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8 15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29 30 October December November Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 7 8 9 10 11 12 13 4 56 78 9 10 2 3 4 5 6 78 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 30 31

Explanation / Answer

NOTE: Give execute permission to the script and this will work generically like for any current year, it will get next year calendar. I dont have cowsay commands and other things you have mentioned to check. looks like they are customized scripts. Let me know if you face any issues.

Unix Terminal> cat calnextyear.sh
#!/bin/sh

# getting current date
dt=`date +%Y`
# increment the current year to 1
nextYr=`expr $dt + 1`
# getting next year calendar and output to ny variable
ny=`cal $nextYr`
echo "$ny"

Execution and output:

Unix Terminal> ./calnextyear.sh
                             2018

      January               February               March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6               1 2 3               1 2 3
7 8 9 10 11 12 13   4 5 6 7 8 9 10   4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31           25 26 27 28           25 26 27 28 29 30 31
                                          
       April                  May                   June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7         1 2 3 4 5                  1 2
8 9 10 11 12 13 14   6 7 8 9 10 11 12   3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30                 27 28 29 30 31        24 25 26 27 28 29 30
                                          
        July                 August              September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7            1 2 3 4                     1
8 9 10 11 12 13 14   5 6 7 8 9 10 11   2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18   9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31              26 27 28 29 30 31     23 24 25 26 27 28 29
                                            30
      October               November              December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
    1 2 3 4 5 6               1 2 3                     1
7 8 9 10 11 12 13   4 5 6 7 8 9 10   2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17   9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31           25 26 27 28 29 30     23 24 25 26 27 28 29
                                            30 31
Unix Terminal>