Bash
- command or error
<command> || { echo "Please install <package>" exit 1 }
arrays Link to heading
- defining:
fruits=("apple" "banana" "cherry") - accessing by index:
echo "${fruits[0]}" - accessing all:
echo "${fruits[@]}" - length:
echo "${#fruits[@]}" - concatenating:
echo "${fruits[*]}" - appending:
fruits+=("durian") - appending multiple:
fruits+=("durian" "elderberry")
fruits=("apple" "banana" "cherry")
echo "${fruits[0]}"
# apple
for f in "${fruits[*]}"; do
echo "$f"
done
# apple banana cherry
more_fruits=("durian" "elderberry")
fruits+=("${more_fruits[@]}")
for f in "${fruits[@]}"; do
echo "$f"
done
# apple
# banana
# cherry
# durian
# elderberry
if Link to heading
if [[ <condition> ]]; then
<command>
elif [[ <condition> ]]; then
<command>
else
<command>
fi
Conditions Link to heading
[[ ! <condition> ]]not
Files/dirs Link to heading
[[ -e <file> ]]file exists[[ -d <dir> ]]dir exists
Strings Link to heading
[[ -z <string> ]]string is empty[[ -n <string> ]]string is not empty
Loops Link to heading
for Link to heading
fruits=("apple" "banana" "cherry")
for f in "${fruits[@]}"; do
echo "$f"
done
for n in {1..100}; do
echo "$n"
done
for n in {1..100}; do echo "$n"; done
sed Link to heading
- insert a line at the beginning of a file
sed -i '1i\<lines>' "<file>" - find and sed multiple files
find "<dir>" -type f -exec sed -i "s|<search>|<replace>|" {} +
Substitution Link to heading
${<variable>}= variable substitution- same as
$variable, but useful when doing string manipulation text="hello" echo "${text:1:3}" # ell
- same as
$(<command>)= command substitutionecho "Today is $(date +%Y-%m-%d)" ``