1 | #!/bin/bash |
2 | |
3 | |
4 | |
5 | |
6 | print_usage() { |
7 | echo "Usage: $0 [-h] [-r rate] [-t hours]" |
8 | echo " -h: print usage" |
9 | echo " -r: hourly rate" |
10 | echo " -t: hours worked" |
11 | } |
12 | |
13 | taxes() { |
14 | tax_rate=0.15 |
15 | echo "$pay" |
16 | tax_pay=$(echo "scale=2; $pay * (1-$tax_rate)" | bc) |
17 | } |
18 | |
19 | hours="" |
20 | rate="" |
21 | |
22 | |
23 | |
24 | optstring="hr:t:" |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | while getopts $optstring opt; do |
33 | case $opt in |
34 | h) |
35 | print_usage |
36 | exit 0 |
37 | ;; |
38 | r)vs |
39 | rate=$OPTARG |
40 | ;; |
41 | t) |
42 | hours=$OPTARG |
43 | ;; |
44 | \?) |
45 | print_usage |
46 | exit 1 |
47 | ;; |
48 | esac |
49 | done |
50 | |
51 | |
52 | while [ -z "$hours" ] || [ -z "$rate" ]; do |
53 | |
54 | |
55 | if [ -z $hours ]; then |
56 | echo "hours is required" |
57 | read -p "enter hours worked: " hours |
58 | fi |
59 | |
60 | if [ -z $rate ]; then |
61 | echo "rate is required" |
62 | read -p "enter hourly rate: " rate |
63 | fi |
64 | done |
65 | |
66 | echo "hours: $hours" |
67 | echo "rate: $rate" |
68 | |
69 | |
70 | |
71 | |
72 | pay=$(echo "scale=2; $hours * $rate" | bc) |
73 | |
74 | taxes |
75 | |
76 | echo "weekly pay is $pay" |
77 | echo "weekly pay less $( echo "scale=1; $tax_rate * 100"|bc)% taxes is $tax_pay" |