10
10
</thead >
11
11
<tbody >
12
12
<tr >
13
- <td><b>functions </b></td>
13
+ <td align="center" ><b>Functions </b></td>
14
14
<td>
15
15
<pre>
16
16
<code>
@@ -39,7 +39,7 @@ foo one two
39
39
</tr >
40
40
41
41
<tr >
42
- <td><b>switch statement</b></td>
42
+ <td align="center" ><b>Switch statement</b></td>
43
43
<td>
44
44
<pre>
45
45
<code>
68
68
</tr >
69
69
70
70
<tr >
71
- <td><b>easy if statements</b></td>
71
+ <td align="center" ><b>Easy if statements</b></td>
72
72
<td>
73
73
<pre>
74
74
<code>
78
78
echo "bar"
79
79
</code >
80
80
<code >
81
- if not $j is "foo" and $x is "bar"
82
- if $j is "foo" or $j is "xfoo"
83
- if $j > $y and $j != $y or $j >= $y
84
- echo "foo"
81
+ if not false and true
82
+ if true or false
83
+ echo "foo"
84
+ </code >
85
+ <code >
86
+ if $x > $y
87
+ if $a < $b
88
+ echo "bar"
85
89
</code >
86
90
</pre>
87
91
</td>
95
99
fi
96
100
</code >
97
101
<code >
98
- if [[ ! "$j" == "foo" && "$x" == "bar" ]] ; then
99
- if [[ "$j" == "foo" || "$j" == "xfoo" ]] ; then
100
- if [[ "$j" -gt "$y" && "$j" -ne "$y" || "$j" -ge "$y" ]] ; then
101
- echo "foo"
102
- fi
102
+ if ! false && true; then
103
+ if true || false; then
104
+ echo 10
105
+ fi
106
+ fi
107
+ </code >
108
+ <code >
109
+ if [[ "$x" -gt "$y" ]] ; then
110
+ if [[ "$a" -lt "$b" ]] ; then
111
+ echo "bar"
103
112
fi
104
113
fi
105
114
</code >
108
117
</tr >
109
118
110
119
<tr >
111
- <td><b>associative array </b></td>
120
+ <td align="center" ><b>Associative arrays </b></td>
112
121
<td>
113
122
<pre>
114
123
<code>
@@ -146,7 +155,7 @@ echo "${foo["bar"]}"
146
155
</tr >
147
156
148
157
<tr >
149
- <td><b>indexed array</b></td>
158
+ <td align="center" ><b>Indexed array</b></td>
150
159
<td>
151
160
<pre>
152
161
<code>
@@ -183,7 +192,7 @@ echo "${bla[0]}"
183
192
</tr >
184
193
185
194
<tr >
186
- <td><b>read file line by line (shared scope)</b></td>
195
+ <td align="center" ><b>Read file line by line (shared scope)</b></td>
187
196
<td>
188
197
<pre>
189
198
<code>
@@ -204,7 +213,7 @@ for line from $selfpath/foo.txt
204
213
</tr >
205
214
206
215
<tr >
207
- <td><b>regex </b></td>
216
+ <td align="center" ><b>Regex </b></td>
208
217
<td>
209
218
<pre>
210
219
<code>
@@ -217,7 +226,7 @@ if $f match ^([f]oo)
217
226
<pre >
218
227
<code >
219
228
# extended pattern matching
220
- # (google 'extglob' for more
229
+ # (google 'extglob' for more)
221
230
</code>
222
231
<code>
223
232
if [[ "$f" =~ ^([ f] oo) ]] ; then
229
238
</tr >
230
239
231
240
<tr >
232
- <td><b>require module </b></td>
241
+ <td align="center" ><b>Requiring modules </b></td>
233
242
<td>
234
243
<pre>
235
244
<code>
@@ -253,7 +262,7 @@ source foo.bash
253
262
</tr >
254
263
255
264
<tr >
256
- <td><b>empty / isset checks</b></td>
265
+ <td align="center" ><b>empty / isset checks</b></td>
257
266
<td>
258
267
<pre>
259
268
<code>
@@ -288,29 +297,30 @@ foo "$@"
288
297
</tr >
289
298
290
299
<tr >
291
- <td><b>mappipe unwraps a pipe</b></td>
300
+ <td align="center" ><b>mappipe unwraps a pipe</b></td>
292
301
<td>
293
302
<pre>
294
303
<code>
295
- myfunc ()
304
+ fn ()
296
305
echo "value=$1"
297
306
</code >
298
307
<code >
299
- echo -e "foo\nbar \n" | mappipe myfunc
308
+ echo -e "a\nb \n" | mappipe fn
300
309
</code >
301
310
</pre >
302
311
</td >
303
312
<td >
304
313
<pre >
305
314
<code >
306
- # outputs: 'value=foo' and 'value=bar'
315
+ # outputs: value=a
316
+ # value=b
307
317
</code>
308
318
</pre>
309
319
</td>
310
320
</tr >
311
321
312
322
<tr >
313
- <td><b>easy math</b></td>
323
+ <td align="center" ><b>Easy math</b></td>
314
324
<td>
315
325
<pre>
316
326
<code>
@@ -323,24 +333,24 @@ math '9 / 2' 4
323
333
<pre >
324
334
<code >
325
335
# outputs: '4' and '4.5000'
326
- # NOTE: the second requires bc
327
- # to be installed for floatingpoint math
336
+ # NOTE: floating point math
337
+ # requires bc
328
338
</code>
329
339
</pre>
330
340
</td>
331
341
</tr >
332
342
333
343
<tr >
334
- <td><b>Easy async</b></td>
344
+ <td align="center" ><b>Easy async</b></td>
335
345
<td>
336
346
<pre>
337
347
<code>
338
- myfunc ()
348
+ fn ()
339
349
sleep 1s
340
350
echo "one"
341
351
</code >
342
352
<code >
343
- await myfunc 123 then
353
+ await fn 123 then
344
354
echo "async done"
345
355
</code >
346
356
</pre >
@@ -356,19 +366,17 @@ await myfunc 123 then
356
366
</tr >
357
367
358
368
<tr >
359
- <td><b>Easy async pipe</b></td>
369
+ <td align="center" ><b>Easy async pipe</b></td>
360
370
<td>
361
371
<pre>
362
372
<code>
363
- myfunc ()
373
+ fn ()
364
374
sleep 1s
365
375
echo "one"
366
376
</code >
367
377
<code >
368
- await myfunc 123 then |
378
+ await fn 123 then |
369
379
cat -
370
- </code >
371
- <code >
372
380
when done
373
381
echo "async done"
374
382
</code >
@@ -385,17 +393,17 @@ when done
385
393
</tr >
386
394
387
395
<tr >
388
- <td><b>Easy async pipe (per line)</b></td>
396
+ <td align="center" ><b>Easy async pipe (per line)</b></td>
389
397
<td>
390
398
<pre>
391
399
<code>
392
- myfunc ()
400
+ fn ()
393
401
sleep 1s
394
402
echo "one"
395
403
echo "two"
396
404
</code >
397
405
<code >
398
- await myfunc 123 then for line
406
+ await fn 123 then for line
399
407
echo "line: $* "
400
408
when done
401
409
echo "async done"
@@ -414,13 +422,16 @@ when done
414
422
</tr >
415
423
416
424
<tr >
417
- <td><b>JSON decode</b></td>
425
+ <td align="center" ><b>JSON decode</b></td>
418
426
<td>
419
427
<pre>
420
428
<code>
421
- json={}
422
- echo '{"a": {"b": "c"}}' | json_decode json
423
- echo $json[ 'a-b']
429
+ obj={}
430
+ json='{"a": {"b": "c"}}'
431
+ </code >
432
+ <code >
433
+ echo "$json" | json_decode obj
434
+ echo $obj[ 'a-b']
424
435
</code >
425
436
</pre >
426
437
</td >
@@ -434,51 +445,56 @@ echo $json['a-b']
434
445
</tr >
435
446
436
447
<tr >
437
- <td><b>FP: curry</b></td>
448
+ <td align="center" ><b>FP: curry</b></td>
438
449
<td>
439
450
<pre>
440
451
<code>
441
- myfunc ()
452
+ fn ()
442
453
echo "1=$1 2=$2"
443
454
</code >
444
455
<code >
445
- curry curriedfunc abc
446
- echo -e "foo\nbar \n" | mappipe curriedfunc
456
+ curry fnc a
457
+ echo -e "b\nc \n" | mappipe fnc
447
458
</code >
448
459
</pre >
449
460
</td >
450
461
<td >
451
462
<pre >
452
463
<code >
453
- # outputs: '1=abc 2=foo' and '1=abc 2=bar'
464
+ # outputs: 1=a 2=b
465
+ # 1=a 2=c
454
466
</code>
455
467
</pre>
456
468
</td>
457
469
</tr >
458
470
459
471
<tr >
460
- <td><b>FP: array values, keys</b></td>
472
+ <td align="center" ><b>FP: array values, keys</b></td>
461
473
<td>
462
474
<pre>
463
475
<code>
464
476
foo={}
465
477
foo[ "one"] ="foo"
466
478
foo[ "two"] ="bar"
467
- map foo keys # prints key per line
468
- map foo values # prints value per line
479
+ map foo keys
480
+ map foo values
469
481
</code >
470
482
</pre >
471
483
</td >
472
484
<td >
473
485
<pre >
474
486
<code >
487
+ # outputs: one
488
+ # two
489
+ # foo
490
+ # bar
475
491
</code>
476
492
</pre>
477
493
</td>
478
494
</tr >
479
495
480
496
<tr >
481
- <td><b>FP: map</b></td>
497
+ <td align="center" ><b>FP: map</b></td>
482
498
<td>
483
499
<pre>
484
500
<code>
@@ -502,49 +518,50 @@ map foo printitem
502
518
</tr >
503
519
504
520
<tr >
505
- <td><b>FP: pick</b></td>
521
+ <td align="center" ><b>FP: pick</b></td>
506
522
<td>
507
523
<pre>
508
524
<code>
509
525
foo={}
510
526
bar={}
511
527
foo[ "one"] ="foo"
512
528
bar[ "foo"] ="123"
513
- map foo values | unpipe pick bar
529
+ map foo values |
530
+ mappipe pick bar
514
531
</code >
515
532
</pre >
516
533
</td >
517
534
<td >
518
535
<pre >
519
536
<code >
520
- # outputs: ' 123'
537
+ # outputs: 123
521
538
</code>
522
539
</pre>
523
540
</td>
524
541
</tr >
525
542
526
543
<tr >
527
- <td><b>FP: compose</b></td>
544
+ <td align="center" ><b>FP: compose</b></td>
528
545
<td>
529
546
<pre>
530
547
<code>
531
- funcA ()
548
+ fnA ()
532
549
echo "($1)"
533
550
</code >
534
551
<code >
535
- funcB ()
552
+ fnB ()
536
553
echo "|$1|"
537
554
</code >
538
555
<code >
539
- compose decorate_string funcA funcB
540
- decorate_string "foo"
556
+ compose decorate fnA fnB
557
+ decorate "foo"
541
558
</code >
542
559
</pre >
543
560
</td >
544
561
<td >
545
562
<pre >
546
563
<code >
547
- # outputs: ' (|foo|)'
564
+ # outputs: (|foo|)
548
565
</code>
549
566
</pre>
550
567
</td>
0 commit comments