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
$
```
|