configs/random-bash.md

1.2 KiB
Executable file

Random bash

Here's random useful bash stuff:

Check if program is installed

Checks if $1 is installed

#!/usr/bin/env bash
command_exists() { type "$1" &> /dev/null; }

if command_exists "$1"; then
    echo "$1 installed"
else
    echo "$1 not installed"
    exit 1
fi

Check which package manager is installed

#!/usr/bin/env bash
command_exists() { type "$1" &> /dev/null; }

if command_exists "apt-get"; then
    PM="apt-get"
elif command_exists "yum"; then
    PM="yum"
elif command_exists "pacman"; then
    PM="pacman"
elif command_exists "zypper"; then
    PM="zypper"
elif command_exists "emerge"; then
    PM="emerge"
elif command_exists "apk"; then
    PM="apk"
else
    >&2 echo "Unsupported: unknown package manager and distro"
    exit 1
fi

echo "Package manager: ${PM}"

Check if root

This exits with and error message if it's run as root.

#!/usr/bin/env bash
if [ $(whoami) != "root" ]; then
    >&2 echo Rerun as non-root user
    exit 1
fi

Output to stderr

#!/usr/bin/env bash
# Put `>&2` at beginning or end of line to output to stderr
>&2 echo "This goes to stderr"
echo "This goes to stdout"