diff --git a/completion/available/sqlmap.completion.bash b/completion/available/sqlmap.completion.bash
index 213dd81736..0ad06938dc 100644
--- a/completion/available/sqlmap.completion.bash
+++ b/completion/available/sqlmap.completion.bash
@@ -7,162 +7,158 @@
 #                                                                            |
 # ---------------------------------------------------------------------------+
 
-if _command_exists sqlmap
-then
+_command_exists sqlmap || return
 
-    function _sqlmap()
-    {
-        local cur prev
+function _sqlmap() {
+	local cur prev
 
-        COMPREPLY=()
-        cur="$(_get_cword)"
-        prev="$(_get_pword)"
+	COMPREPLY=()
+	cur="$(_get_cword)"
+	prev="$(_get_pword)"
 
-        case $prev in
+	case $prev in
 
-    # List directory content
-    --tamper)
-        COMPREPLY=( $( compgen -W "$tamper" -- "$cur" ) )
-        return 0
-        ;;
-    --output-dir|-t|-l|-m|-r|--load-cookies|--proxy-file|--sql-file|--shared-lib|--file-write)
-        _filedir
-        return 0
-        ;;
-    -c)
-        _filedir ini
-        return 0
-        ;;
-    --method)
-        COMPREPLY=( $( compgen -W 'GET POST PUT' -- "$cur" ) )
-        return 0
-        ;;
-    --auth-type)
-        COMPREPLY=( $( compgen -W 'Basic Digest NTLM PKI' -- "$cur" ) )
-        return 0
-        ;;
-    --tor-type)
-        COMPREPLY=( $( compgen -W 'HTTP SOCKS4 SOCKS5' -- "$cur" ) )
-        return 0
-        ;;
-    -v)
-        COMPREPLY=( $( compgen -W '1 2 3 4 5 6' -- "$cur" ) )
-        return 0
-        ;;
-    --dbms)
-        COMPREPLY=( $( compgen -W 'mysql mssql access postgres' -- "$cur" ) )
-        return 0
-        ;;
-    --level|--crawl)
-        COMPREPLY=( $( compgen -W '1 2 3 4 5' -- "$cur" ) )
-        return 0
-        ;;
-    --risk)
-        COMPREPLY=( $( compgen -W '0 1 2 3' -- "$cur" ) )
-        return 0
-        ;;
-    --technique)
-        COMPREPLY=( $( compgen -W 'B E U S T Q' -- "$cur" ) )
-        return 0
-        ;;
-    -s)
-        _filedir sqlite
-        return 0
-        ;;
-    --dump-format)
-        COMPREPLY=( $( compgen -W 'CSV HTML SQLITE' -- "$cur" ) )
-        return 0
-        ;;
-    -x)
-        _filedir xml
-        return 0
-        ;;
-        esac
+		# List directory content
+		--tamper)
+			COMPREPLY=($(compgen -W "$tamper" -- "$cur"))
+			return 0
+			;;
+		--output-dir | -t | -l | -m | -r | --load-cookies | --proxy-file | --sql-file | --shared-lib | --file-write)
+			_filedir
+			return 0
+			;;
+		-c)
+			_filedir ini
+			return 0
+			;;
+		--method)
+			COMPREPLY=($(compgen -W 'GET POST PUT' -- "$cur"))
+			return 0
+			;;
+		--auth-type)
+			COMPREPLY=($(compgen -W 'Basic Digest NTLM PKI' -- "$cur"))
+			return 0
+			;;
+		--tor-type)
+			COMPREPLY=($(compgen -W 'HTTP SOCKS4 SOCKS5' -- "$cur"))
+			return 0
+			;;
+		-v)
+			COMPREPLY=($(compgen -W '1 2 3 4 5 6' -- "$cur"))
+			return 0
+			;;
+		--dbms)
+			COMPREPLY=($(compgen -W 'mysql mssql access postgres' -- "$cur"))
+			return 0
+			;;
+		--level | --crawl)
+			COMPREPLY=($(compgen -W '1 2 3 4 5' -- "$cur"))
+			return 0
+			;;
+		--risk)
+			COMPREPLY=($(compgen -W '0 1 2 3' -- "$cur"))
+			return 0
+			;;
+		--technique)
+			COMPREPLY=($(compgen -W 'B E U S T Q' -- "$cur"))
+			return 0
+			;;
+		-s)
+			_filedir sqlite
+			return 0
+			;;
+		--dump-format)
+			COMPREPLY=($(compgen -W 'CSV HTML SQLITE' -- "$cur"))
+			return 0
+			;;
+		-x)
+			_filedir xml
+			return 0
+			;;
+	esac
 
-        if [[ "$cur" == * ]]; then
-        COMPREPLY=( $( compgen -W '-h --help -hh --version -v -d -u --url -l -x -m -r -g -c --method \
-        --data --param-del --cookie --cookie-del --load-cookies \
-        --drop-set-cookie --user-agent --random-agent --host --referer \
-        --headers --auth-type --auth-cred --auth-private --ignore-401 \
-        --proxy --proxy-cred --proxy-file --ignore-proxy --tor --tor-port \
-        --tor-type --check-tor --delay --timeout --retries --randomize \
-        --safe-url --safe-freq --skip-urlencode --csrf-token --csrf-url \
-        --force-ssl --hpp --eval -o --predict-output --keep-alive \
-        --null-connection --threads -p  --skip --dbms --dbms-cred \
-        --os --invalid-bignum --invalid-logical --invalid-string \
-        --no-cast --no-escape --prefix --suffix --tamper --level \
-        --risk --string --not-string --regexp --code --text-only \
-        --titles --technique --time-sec --union-cols --union-char \
-        --union-from --dns-domain --second-order -f --fingerprint \
-        -a --all -b --banner --current-user --current-db --hostname \
-        --is-dba --users --passwords --privileges --roles --dbs --tables \
-        --columns --schema --count --dump --dump-all --search --comments \
-        -D -T -C -X -U --exclude-sysdbs --where --start --stop \
-        --first --last --sql-query --sql-shell --sql-file --common-tables \
-        --common-columns --udf-inject --shared-lib --file-read --file-write \
-        --file-dest --os-cmd --os-shell --os-pwn --os-smbrelay --os-bof \
-        --priv-esc --msf-path --tmp-path --reg-read --reg-add --reg-del \
-        --reg-key --reg-value --reg-data --reg-type -s -t --batch \
-        --charset --crawl --csv-del --dump-format --eta --flush-session \
-        --forms --fresh-queries --hex --output-dir --parse-errors \
-        --pivot-column --save --scope --test-filter --update \
-        -z --alert --answers --beep --check-waf --cleanup \
-        --dependencies --disable-coloring --gpage --identify-waf \
-        --mobile --page-rank --purge-output --smart \
-        --sqlmap-shell --wizard' -- "$cur" ) )
-        # this removes any options from the list of completions that have
-        # already been specified somewhere on the command line, as long as
-        # these options can only be used once (in a word, "options", in
-        # opposition to "tests" and "actions", as in the find(1) manpage).
-        onlyonce=' -h --help -hh --version -v -d -u --url -l -x -m -r -g -c \
-        --drop-set-cookie --random-agent \
-        --ignore-401 \
-        --ignore-proxy --tor \
-        --check-tor \
-        --skip-urlencode \
-        --force-ssl --hpp -o --predict-output --keep-alive \
-        --null-connection -p \
-        --invalid-bignum --invalid-logical --invalid-string \
-        --no-cast --no-escape \
-        --text-only \
-        --titles \
-        -f --fingerprint \
-        -a --all -b --banner --current-user --current-db --hostname \
-        --is-dba --users --passwords --privileges --roles --dbs --tables \
-        --columns --schema --count --dump --dump-all --search --comments \
-        -D -T -C -X -U --exclude-sysdbs \
-        --sql-shell --common-tables \
-        --common-columns --udf-inject \
-        --os-shell --os-pwn --os-smbrelay --os-bof \
-        --priv-esc --reg-read --reg-add --reg-del \
-        -s -t --batch \
-        --eta --flush-session \
-        --forms --fresh-queries --hex --parse-errors \
-        --save --update \
-        -z --beep --check-waf --cleanup \
-        --dependencies --disable-coloring --identify-waf \
-        --mobile --page-rank --purge-output --smart \
-        --sqlmap-shell --wizard '
-        COMPREPLY=( $( \
-		(while read -d ' ' i; do
-                [[ -z "$i" || "${onlyonce/ ${i%% *} / }" == "$onlyonce" ]] &&
-                continue
-                # flatten array with spaces on either side,
-                # otherwise we cannot grep on word boundaries of
-                # first and last word
-                COMPREPLY=" ${COMPREPLY[@]} "
-                # remove word from list of completions
-                COMPREPLY=( ${COMPREPLY/ ${i%% *} / } )
-			done
-                printf '%s ' "${COMPREPLY[@]}") <<<"${COMP_WORDS[@]}"
-            ) )
+	if [[ "$cur" == * ]]; then
+		COMPREPLY=($(compgen -W '-h --help -hh --version -v -d -u --url -l -x -m -r -g -c --method \
+			--data --param-del --cookie --cookie-del --load-cookies \
+			--drop-set-cookie --user-agent --random-agent --host --referer \
+			--headers --auth-type --auth-cred --auth-private --ignore-401 \
+			--proxy --proxy-cred --proxy-file --ignore-proxy --tor --tor-port \
+			--tor-type --check-tor --delay --timeout --retries --randomize \
+			--safe-url --safe-freq --skip-urlencode --csrf-token --csrf-url \
+			--force-ssl --hpp --eval -o --predict-output --keep-alive \
+			--null-connection --threads -p  --skip --dbms --dbms-cred \
+			--os --invalid-bignum --invalid-logical --invalid-string \
+			--no-cast --no-escape --prefix --suffix --tamper --level \
+			--risk --string --not-string --regexp --code --text-only \
+			--titles --technique --time-sec --union-cols --union-char \
+			--union-from --dns-domain --second-order -f --fingerprint \
+			-a --all -b --banner --current-user --current-db --hostname \
+			--is-dba --users --passwords --privileges --roles --dbs --tables \
+			--columns --schema --count --dump --dump-all --search --comments \
+			-D -T -C -X -U --exclude-sysdbs --where --start --stop \
+			--first --last --sql-query --sql-shell --sql-file --common-tables \
+			--common-columns --udf-inject --shared-lib --file-read --file-write \
+			--file-dest --os-cmd --os-shell --os-pwn --os-smbrelay --os-bof \
+			--priv-esc --msf-path --tmp-path --reg-read --reg-add --reg-del \
+			--reg-key --reg-value --reg-data --reg-type -s -t --batch \
+			--charset --crawl --csv-del --dump-format --eta --flush-session \
+			--forms --fresh-queries --hex --output-dir --parse-errors \
+			--pivot-column --save --scope --test-filter --update \
+			-z --alert --answers --beep --check-waf --cleanup \
+			--dependencies --disable-coloring --gpage --identify-waf \
+			--mobile --page-rank --purge-output --smart \
+			--sqlmap-shell --wizard' -- "$cur"))
+		# this removes any options from the list of completions that have
+		# already been specified somewhere on the command line, as long as
+		# these options can only be used once (in a word, "options", in
+		# opposition to "tests" and "actions", as in the find(1) manpage).
+		onlyonce=' -h --help -hh --version -v -d -u --url -l -x -m -r -g -c \
+			--drop-set-cookie --random-agent \
+			--ignore-401 \
+			--ignore-proxy --tor \
+			--check-tor \
+			--skip-urlencode \
+			--force-ssl --hpp -o --predict-output --keep-alive \
+			--null-connection -p \
+			--invalid-bignum --invalid-logical --invalid-string \
+			--no-cast --no-escape \
+			--text-only \
+			--titles \
+			-f --fingerprint \
+			-a --all -b --banner --current-user --current-db --hostname \
+			--is-dba --users --passwords --privileges --roles --dbs --tables \
+			--columns --schema --count --dump --dump-all --search --comments \
+			-D -T -C -X -U --exclude-sysdbs \
+			--sql-shell --common-tables \
+			--common-columns --udf-inject \
+			--os-shell --os-pwn --os-smbrelay --os-bof \
+			--priv-esc --reg-read --reg-add --reg-del \
+			-s -t --batch \
+			--eta --flush-session \
+			--forms --fresh-queries --hex --parse-errors \
+			--save --update \
+			-z --beep --check-waf --cleanup \
+			--dependencies --disable-coloring --identify-waf \
+			--mobile --page-rank --purge-output --smart \
+			--sqlmap-shell --wizard '
+		COMPREPLY=($(
+			(
+				while read -d ' ' i; do
+					[[ -z "$i" || "${onlyonce/ ${i%% *} / }" == "$onlyonce" ]] && continue
+					# flatten array with spaces on either side,
+					# otherwise we cannot grep on word boundaries of
+					# first and last word
+					COMPREPLY=" ${COMPREPLY[@]} "
+					# remove word from list of completions
+					COMPREPLY=(${COMPREPLY/ ${i%% *} / })
+				done
+				printf '%s ' "${COMPREPLY[@]}"
+			) <<< "${COMP_WORDS[@]}"
+		))
 
-    #    else
-    #        _filedir bat
-        fi
-    }
+		#else
+		#_filedir bat
+	fi
+}
 
-
-    complete -F _sqlmap sqlmap
-
-fi
+complete -F _sqlmap sqlmap