• No results found

8: Looking at a Calendar

In document Teach Yourself Unix in 24 Hours pdf (Page 48-51)

Another useful utility in UNIX is the cal command, which shows a simple calendar for the month or year specified.

1. To confirm that 5 October 1993 is a Tuesday, turn to your computer and enter cal 10 93. You should see the following:

% cal 10 93 October 93 S M Tu W Th F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 %

2. If you look closely, you’ll find that there’s a bit of a problem here. October 5 is shown as a Saturday rather than a Tuesday as expected.

The reason is that cal can list any year from A.D. 0. In fact, what you have on your screen is how the month of October would have looked in A.D. 93, 1900 years ago.

This is a bit misleading because Western society uses the Julian calendar, adopted in 1752. Before that, the program should really list Gregorian- format monthly calendars, but it can’t, so don’t use this as a historical reference for ascertaining what day of the week the Emperor Hadrian was born.

3. To find out the information that you want, you’ll need to specify to the cal program both the month and full year:

% cal 10 1993 October 1993 S M Tu W Th F S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 %

This is correct. The 5th of October in 1993 is indeed a Tuesday. On some systems, cal has no intelligent default action, so entering cal doesn’t simply list the monthly calendar for the current month. Later you’ll learn how to write a simple shell script to do just that. For now, turn to your system and enter cal to see what happens.

2

4. My favorite example of the cal program is to ask for the year 1752, the year when the Western calendar switched from Gregorian to Julian. Note particularly the month of September, during which the switch actually occurred.

% cal 1752

1752

Jan Feb Mar

S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S 1 2 3 4 1 1 2 3 4 5 6 7 5 6 7 8 9 10 11 2 3 4 5 6 7 8 8 9 10 11 12 13 14 12 13 14 15 16 17 18 9 10 11 12 13 14 15 15 16 17 18 19 20 21 19 20 21 22 23 24 25 16 17 18 19 20 21 22 22 23 24 25 26 27 28 26 27 28 29 30 31 23 24 25 26 27 28 29 29 30 31

Apr May Jun

S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S 1 2 3 4 1 2 1 2 3 4 5 6 5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13 12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20 19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27 26 27 28 29 30 24 25 26 27 28 29 30 28 29 30 31

Jul Aug Sep

S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S 1 2 3 4 1 1 2 14 15 16 5 6 7 8 9 10 11 2 3 4 5 6 7 8 17 18 19 20 21 22 23 12 13 14 15 16 17 18 9 10 11 12 13 14 15 24 25 26 27 28 29 30 19 20 21 22 23 24 25 16 17 18 19 20 21 22 26 27 28 29 30 31 23 24 25 26 27 28 29 30 31

Oct Nov Dec

S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S 1 2 3 4 5 6 7 1 2 3 4 1 2 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9 15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16 22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23 29 30 31 26 27 28 29 30 24 25 26 27 28 29 30 31 %

You can experiment with cal and easily find out fun information—for example, what day of the week you or your parents were born. If you’re curious about whether Christmas 1999 is on a weekend, cal can answer that question, too.

When you used cal, you entered the name of the command and then some additional information to indicate the exact action you desired. You tried both cal 10 93 and cal 10 1993. In UNIX parlance, the first word is the command, and the subsequent words are arguments or options to the command. A special class of options are those that begin with a single dash, called flags, and you’ll learn about those starting in the next hour.

Simple Math with UNIX

Having both an internal wall clock and an internal calendar, UNIX seems to have much of what you need in an office. One piece that’s missing now, however, is a simple desktop calculator. UNIX offers two different types of calculator, although neither rightly can be called simple.

Mathematicians talk about infix and postfix notation as two different ways to write an expression, the former having the operation embedded in the operators, and the latter having all the operators listed, followed by the operation required. Table 2.1 lists some examples of a mathematical expression in both formats.

Table 2.1. Comparing infix and postfix notation.

Infix Postfix

75*0.85 75 0.85 *

(37*1.334)+44 37 1.334 * 44 + cos(3.45)/4 3.45 cos 4 /

You’re probably familiar with the infix notation, which is the form used in math textbooks throughout the world. Lots of calculators can work this way, too; you’d press the keys 1 + 1 = to find out that 1 plus 1 equals 2.

Some calculators offer the postfix alternative, also known as (reverse) Polish notation, invented by Polish mathematician and logician Jan Lukasiewicz. Notably, for many years Hewlett-Packard has been making calculators that work with RPN notation. On an HP calculator, you’d press the keys 1 Enter 1 + to find out that 1 plus 1 equals 2.

Notice that, although parentheses were required in the second equation in the table when using infix notation, parentheses weren’t necessary to force a specific order of evaluation with postfix. Remember that in math you always work from the inside of the parentheses outward, so (3 * 4) + 8 is solved by multiplying 3 by 4, then adding 8, and that process is exactly what RPN mimics.

UNIX offers two calculator programs, one with infix notation and one with postfix notation.

In document Teach Yourself Unix in 24 Hours pdf (Page 48-51)