summaryrefslogtreecommitdiff
path: root/os1w2/practicum.md
blob: c7db34d88dc59880c973d33b6e13f921aff25a72 (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# os1 practicum week 2

<!-- deze week is alles POSIX sh :^) -->

## opdracht 1

```bash
#!/bin/sh
echo "Hello, world!"
```

## opdracht 2

```bash
#!/bin/sh
for arg in "$@"; do
  echo "$arg"
done

```

## opdracht 3

```bash
#!/bin/sh
usage() {
  echo "$0: usage: $0 -u"
  exit 1
}

usage
```

## opdracht 4

```bash
#!/bin/sh
usage() {
  echo "$0: usage: $0 -u"
  exit 1
}

[ -z "$1" ] && usage

case "$1" in
  "-u") id -un ;;
  *) usage ;;
esac

```

## opdracht 5

1. ```bash
   $ ./treesje 
   + a=hallo
   + b=42
   + file args
   args: POSIX shell script, ASCII text executable
   + file func
   func: POSIX shell script, ASCII text executable
   + file hello
   hello: POSIX shell script, ASCII text executable
   + file practicum.md
   practicum.md: ASCII text
   + file treesje
   treesje: POSIX shell script, ASCII text executable
   $ 
   ```
2. Als `$f` niet in dubbele quotes zou staan, en `*` een bestandsnaam zou
   vinden met een spatie, zou `file` deze als losse argumenten zien, waardoor
   deze waarschijnlijk een "file not found" foutmelding zal geven.
3. Een lijst van bestanden op losse regels
4. `$*` is een variabele die alle positionele argumenten samengevoegd heeft,
   terwijl `*` een wildcard is.

## opdracht 6

```bash
$ # 1
$ echo "hoi" > enkel.txt
$ # 2
$ (echo "hoi"; echo "hoi2"; echo "hoi3") > meerdere.txt
$ # 3
$ cat meerdere.txt 
hoi
hoi2
hoi3
$ # ik zie de inhoud van meerdere.txt
$ # 4
$ cat enkel.txt meerdere.txt 
hoi
hoi
hoi2
hoi3
$ # `cat` voegt bestanden samen (concatenate)
$ # 5
$ t="`cat enkel.txt`"
$ # 6
$ echo "$t"
hoi
$ # 7
$ t="`cat meerdere.txt`"
$ echo "$t"             
hoi
hoi2
hoi3
$ 
```