Bash file manipulation utility functions. Add line to file, delete line from file, and several more.

add_line_to_file() {
    local file=$1; shift
    local line=$@

    echo $line >> $file
}

delete_line_from_file() {
    local file=$1; shift
    local line=$@

    sed -i "/^$line/d" $file
}

line_in_file() {
    local f=$1; shift
    local line=$@

    grep -q "^$line$" $f
}

add_line_to_file_if_not_exist() {
    local f=$1; shift
    local line=$@

    line_in_file $f $line \
        || add_line_to_file $f $line
}