From b7c68da88eec95f7705c3f4d1f0b7ba3b64abb74 Mon Sep 17 00:00:00 2001 From: Marcin Chrzanowski Date: Wed, 8 Jan 2025 16:18:50 +0100 Subject: Add bash things --- bash.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/bash.md b/bash.md index 8877982..432bc5e 100644 --- a/bash.md +++ b/bash.md @@ -66,6 +66,9 @@ Associative arrays: Assignment: + # Indexed + array=(foo bar "baz bom"...) + # Associative array=([bla]=foo [ble]=bar...) All values: @@ -78,6 +81,23 @@ All keys: ${!array[*]} ${!array[@]} +So looping: + + # Over values + for x in "${array[@]}"; do ... + # Over keys (0-based indices for indexed) + for x in "${!array[@]}"; do ... + + +Array size: + + ${#array[@]} + +Slice: + + # n elements starting at index i + ${array[@]:i:n} + ## Commandline arguments * `$#`: number of arguments. @@ -99,3 +119,13 @@ Positional arguments will have to be supplied after flag options (`command [options] `): shift $((OPTIND-1)) + + +## Shell optional behavior/settings/options (`shopt` builtin) + + # Enable + shopt -s