#!/usr/bin/env bash directory="" dryrun="false" function multigrep(){ # will grep for each argument passed if [ -n "$1" ]; then local i="$1" shift cat - | grep "$i" | multigrep "$@" else cat - fi } function main(){ if [ "$dryrun" == "true" ]; then curl "$directory" | hq a attr href | multigrep "$@" else curl "$directory" | hq a attr href | multigrep "$@" | awk "{print \"$directory\" \$1}" | aria2c -i - fi } if [ -n "$1" ]; then while [ -n "$1" ]; do case "$1" in "-d"|"--dry-run") dryrun="true" shift ;; *) directory="$1" shift main "$@" exit 0 ;; esac done else echo "No url passed" fi shift curl "$directory" | hq a attr href | multigrep "$@"