Package: ipset Version: 6.30-2 Severity: minor I'm getting a bash completion error on a new server I've just set up. This actually doesn't happen on my desktop, though both are running up-to-date stretch.
I'm attaching the output I get when running 'bash -lx' and then typing 'ipset de[TAB]' I don't know that much about bash debugging so do let me know if I there's something else I should do. Without debugging it's just this: # ipset de-bash: syntax error in conditional expression -bash: syntax error near `2' -- System Information: Debian Release: stretch/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 4.8.0-2-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE= (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init) Versions of packages ipset depends on: ii iptables 1.6.0-4 ii libc6 2.24-8 ii libipset3 6.30-2 ipset recommends no packages. ipset suggests no packages. -- debconf-show failed
# ipset de+ local compfile=./completions + [[ /usr/share/bash-completion/bash_completion == */* ]] + compfile=/usr/share/bash-completion/completions + compfile+=/ipset + [[ -f /usr/share/bash-completion/completions/ipset ]] + . /usr/share/bash-completion/completions/ipset + return 124 + local cur prev cword words ips_version + local str_action str_setname str_type str_filename + local str_glob str_regex str_prefix str_suffix + local str_tmp= str_var= + local str_timeout=timeout 'str_order=before after' str_forceadd= + local str_counters= str_bp_counters= str_comment= str_markmask= + local str_skbinfo= str_skbflags= + local -i i=x=y=0 + local -i got_bashcompl=got_action=action_index=order_index=set_has_timeout=0 + local -i got_bp_proto=0 + local -i ignore_errors=use_file=names_only=headers_only=save_format=res_sort=0 + arr_sets=() + arr_types=() + arr_members=() + arr_unknown_opts=() + local arr_sets arr_types arr_members arr_unknown_opts + arr_dupe_cmd_opts=() + arr_used_opts=() + arr_tmp=() + local arr_dupe_cmd_opts arr_used_opts arr_tmp + arr_opts=("-! -exist" "-o -output" "-q -quiet" "-r -resolve" "-s -sorted" "-n -name" "-t -terse" "-f -file") + local arr_opts + arr_icmp_types=(echo-reply pong network-unreachable host-unreachable protocol-unreachable port-unreachable fragmentation-needed source-route-failed network-unknown host-unknown network-prohibited host-prohibited TOS-network-unreachable TOS-host-unreachable communication-prohibited host-precedence-violation precedence-cutoff source-quench network-redirect host-redirect TOS-network-redirect TOS-host-redirect echo-request ping router-advertisement router-solicitation ttl-zero-during-transit ttl-zero-during-reassembly ip-header-bad required-option-missing timestamp-request timestamp-reply address-mask-request address-mask-reply) + local arr_icmp_types + arr_icmp6_types=(no-route communication-prohibited address-unreachable port-unreachable packet-too-big ttl-zero-during-transit ttl-zero-during-reassembly bad-header unknown-header-type unknown-option echo-request ping echo-reply pong router-solicitation router-advertisement neighbour-solicitation neigbour-solicitation neighbour-advertisement neigbour-advertisement redirect) + local arr_icmp6_types + (( 4 < 4 )) + COMPREPLY=() ++ ipset version + ips_version='ipset v6.30, protocol version: 6' + ips_version='6.30, protocol version: 6' + ips_version=6.30 + read -a ips_version + [[ 6 = +([[:digit:]]) ]] + (( ips_version[0] < 6 )) + (( ips_version[0] > 6 )) + (( ips_version[0] == 6 )) + (( ips_version[1] >= 22 )) + str_comment=comment + str_markmask=markmask + str_forceadd=forceadd + str_skbinfo=skbinfo + str_skbflags='skbmark skbprio skbqueue' + got_bp_proto=1 + declare -f _get_comp_words_by_ref + got_bashcompl=1 + _get_comp_words_by_ref -n : cur prev cword words + local exclude flag i OPTIND=1 + words=() + local cur cword words + upargs=() + upvars=() + local upargs upvars vcur vcword vprev vwords + getopts c:i:n:p:w: flag -n : cur prev cword words + case $flag in + exclude=: + getopts c:i:n:p:w: flag -n : cur prev cword words + [[ 6 -ge 3 ]] + case ${!OPTIND} in + vcur=cur + let 'OPTIND += 1' + [[ 6 -ge 4 ]] + case ${!OPTIND} in + vprev=prev + let 'OPTIND += 1' + [[ 6 -ge 5 ]] + case ${!OPTIND} in + vcword=cword + let 'OPTIND += 1' + [[ 6 -ge 6 ]] + case ${!OPTIND} in + vwords=words + let 'OPTIND += 1' + [[ 6 -ge 7 ]] + __get_cword_at_cursor_by_ref : words cword cur + words=() + local cword words + __reassemble_comp_words_by_ref : words cword + local exclude i j line ref + [[ -n : ]] + exclude=: + eval cword=1 ++ cword=1 + [[ -n : ]] + line='ipset de' + (( i=0, j=0 )) + (( i < 2 )) + [[ 0 -gt 0 ]] + ref='words[0]' + eval 'words[0]=${!ref}${COMP_WORDS[i]}' ++ words[0]=ipset + line=' de' + [[ 0 == 1 ]] + (( i++, j++ )) + (( i < 2 )) + [[ 1 -gt 0 ]] + [[ de == +([:]) ]] + ref='words[1]' + eval 'words[1]=${!ref}${COMP_WORDS[i]}' ++ words[1]=de + line= + [[ 1 == 1 ]] + eval cword=1 ++ cword=1 + (( i++, j++ )) + (( i < 2 )) + [[ 2 == 1 ]] + local i cur index=8 'lead=ipset de' + [[ 8 -gt 0 ]] + [[ -n ipset de ]] + [[ -n ipsetde ]] + cur='ipset de' + (( i = 0 )) + (( i <= cword )) + [[ 8 -ge 5 ]] + [[ ipset != \i\p\s\e\t ]] + [[ 0 -lt 1 ]] + local old_size=8 + cur=' de' + local new_size=3 + index=3 + (( ++i )) + (( i <= cword )) + [[ 3 -ge 2 ]] + [[ d != \d\e ]] + cur=de + (( index-- )) + [[ 2 -ge 2 ]] + [[ de != \d\e ]] + [[ 1 -lt 1 ]] + (( ++i )) + (( i <= cword )) + [[ -n de ]] + [[ ! -n de ]] + [[ 2 -lt 0 ]] + local words cword cur + _upvars -a2 words ipset de -v cword 1 -v cur de + (( 10 )) + (( 10 )) + case $1 in + [[ -n 2 ]] + printf %d 2 + [[ -n words ]] + unset -v words + eval 'words=("${@:3:2}")' ++ words=("${@:3:2}") + shift 4 + (( 6 )) + case $1 in + [[ -n cword ]] + unset -v cword + eval 'cword="$3"' ++ cword=1 + shift 3 + (( 3 )) + case $1 in + [[ -n cur ]] + unset -v cur + eval 'cur="$3"' ++ cur=de + shift 3 + (( 0 )) + [[ -n cur ]] + upvars+=("$vcur") + upargs+=(-v $vcur "$cur") + [[ -n cword ]] + upvars+=("$vcword") + upargs+=(-v $vcword "$cword") + [[ -n prev ]] + [[ 1 -ge 1 ]] + upvars+=("$vprev") + upargs+=(-v $vprev "${words[cword - 1]}") + [[ -n words ]] + upvars+=("$vwords") + upargs+=(-a${#words[@]} $vwords "${words[@]}") + (( 4 )) + local cur cword prev words + _upvars -v cur de -v cword 1 -v prev ipset -a2 words ipset de + (( 13 )) + (( 13 )) + case $1 in + [[ -n cur ]] + unset -v cur + eval 'cur="$3"' ++ cur=de + shift 3 + (( 10 )) + case $1 in + [[ -n cword ]] + unset -v cword + eval 'cword="$3"' ++ cword=1 + shift 3 + (( 7 )) + case $1 in + [[ -n prev ]] + unset -v prev + eval 'prev="$3"' ++ prev=ipset + shift 3 + (( 4 )) + case $1 in + [[ -n 2 ]] + printf %d 2 + [[ -n words ]] + unset -v words + eval 'words=("${@:3:2}")' ++ words=("${@:3:2}") + shift 4 + (( 0 )) + (( got_bashcompl )) + declare -F _ipset_known_hosts ++ declare -f _known_hosts_real ++ grep -Ev '^(\{|\})' ++ grep -Ev '^_known_hosts_real.*$' ++ grep -v __ltrim_colon_completions + eval '_ipset_known_hosts() { ' local configfile flag 'prefix;' local cur curd awkcur user suffix aliases i 'host;' local -a kh khd 'config;' local 'OPTIND=1;' while getopts '"acF:p:"' flag '"$@";' do case '$flag' in 'a)' 'aliases='\''yes'\''' ';;' 'c)' 'suffix='\'':'\''' ';;' 'F)' 'configfile=$OPTARG' ';;' 'p)' 'prefix=$OPTARG' ';;' 'esac;' 'done;' '[[' '$#' -lt '$OPTIND' ']]' '&&' echo '"error:' '$FUNCNAME:' missing mandatory argument 'CWORD";' 'cur=${!OPTIND};' let '"OPTIND' += '1";' '[[' '$#' -ge '$OPTIND' ']]' '&&' echo '"error:' '$FUNCNAME("$@"):' unprocessed 'arguments:"' '$(while' '[[' '$#' -ge '$OPTIND' ']];' do printf ''\''%s\n'\''' '${!OPTIND};' 'shift;' 'done);' '[[' '$cur' == '*@*' ']]' '&&' 'user=${cur%@*}@' '&&' 'cur=${cur#*@};' 'kh=();' if '[[' -n '$configfile' ']];' then '[[' -r '$configfile' ']]' '&&' 'config+=("$configfile");' else for i in /etc/ssh/ssh_config '~/.ssh/config' '~/.ssh2/config;' do '[[' -r '$i' ']]' '&&' 'config+=("$i");' 'done;' 'fi;' if '[[' '${#config[@]}' -gt 0 ']];' then local 'OIFS=$IFS' 'IFS='\''' \' 'j;' local -a 'tmpkh;' 'tmpkh=($(' awk ''\''sub("^[' '\t]*([Gg][Ll][Oo][Bb][Aa][Ll]|[Uu][Ss][Ee][Rr])[Kk][Nn][Oo][Ww][Nn][Hh][Oo][Ss][Tt][Ss][Ff][Ii][Ll][Ee][' '\t]+",' '"")' '{' print '$0' '}'\''' '"${config[@]}"' '|' sort -u '));' 'IFS=$OIFS;' for i in '"${tmpkh[@]}";' do while '[[' '$i' '=~' '^([^\"]*)\"([^\"]*)\"(.*)$' ']];' do 'i=${BASH_REMATCH[1]}${BASH_REMATCH[3]};' 'j=${BASH_REMATCH[2]};' __expand_tilde_by_ref 'j;' '[[' -r '$j' ']]' '&&' 'kh+=("$j");' 'done;' for j in '$i;' do __expand_tilde_by_ref 'j;' '[[' -r '$j' ']]' '&&' 'kh+=("$j");' 'done;' 'done;' 'fi;' if '[[' -z '$configfile' ']];' then for i in /etc/ssh/ssh_known_hosts /etc/ssh/ssh_known_hosts2 /etc/known_hosts /etc/known_hosts2 '~/.ssh/known_hosts' '~/.ssh/known_hosts2;' do '[[' -r '$i' ']]' '&&' 'kh+=("$i");' 'done;' for i in /etc/ssh2/knownhosts '~/.ssh2/hostkeys;' do '[[' -d '$i' ']]' '&&' 'khd+=("$i"/*pub);' 'done;' 'fi;' if '[[' '${#kh[@]}' -gt 0 '||' '${#khd[@]}' -gt 0 ']];' then 'awkcur=${cur//\//\\\/};' 'awkcur=${awkcur//\./\\\.};' 'curd=$awkcur;' if '[[' '"$awkcur"' == '[0-9]*[.:]*' ']];' then 'awkcur="^$awkcur[.:]*";' else if '[[' '"$awkcur"' == 1 2 ']];' then 'awkcur="^$awkcur.*[.:]";' else if '[[' -z '$awkcur' ']];' then 'awkcur="[a-z.:]";' else 'awkcur="^$awkcur";' 'fi;' 'fi;' 'fi;' if '[[' '${#kh[@]}' -gt 0 ']];' then 'COMPREPLY+=($(' awk ''\''BEGIN' '{FS=","}' '/^\s*[^|\#]/' '{' 'sub("^@[^' ']+' '+",' '"");' '\' 'sub("' '.*$",' '"");' '\' for '(i=1;' 'i<=NF;' '++i)' '{' '\' 'sub("^\\[",' '"",' '$i);' 'sub("\\](:[0-9]+)?$",' '"",' '$i);' '\' if '($i' '!~' '/[*?]/' '&&' '$i' '~' '/'\''"$awkcur"'\''/)' '{print' '$i}' '\' '}}'\''' '"${kh[@]}"' '2>/dev/null' '));' 'fi;' if '[[' '${#khd[@]}' -gt 0 ']];' then for i in '"${khd[@]}";' do if '[[' '"$i"' == '*key_22_$curd*.pub' '&&' -r '"$i"' ']];' then 'host=${i/#*key_22_/};' 'host=${host/%.pub/};' 'COMPREPLY+=($host);' 'fi;' 'done;' 'fi;' for '((i=0;' i '<' '${#COMPREPLY[@]};' i++ '))' do 'COMPREPLY[i]=$prefix$user${COMPREPLY[i]}$suffix;' 'done;' 'fi;' if '[[' '${#config[@]}' -gt 0 '&&' -n '"$aliases"' ']];' then local 'hosts=$(' sed -ne ''\''s/^[' '\t]*[Hh][Oo][Ss][Tt]\([Nn][Aa][Mm][Ee]\)\{0,1\}['\''"$'\''\t' ''\''"'\'']\{1,\}\([^#*?]*\)\(#.*\)\{0,1\}$/\2/p'\''' '"${config[@]}"' ');' 'COMPREPLY+=($(' compgen -P '"$prefix$user"' -S '"$suffix"' -W '"$hosts"' -- '"$cur"' '));' 'fi;' 'COMPREPLY+=($(' compgen -W '"$(' ruptime '2>/dev/null' '|' awk ''\''!/^ruptime:/' '{' print '$1' '}'\''' ')"' -- '"$cur"' '));' if '[[' -n '${COMP_KNOWN_HOSTS_WITH_HOSTFILE-1}' ']];' then 'COMPREPLY+=($(' compgen -A hostname -P '"$prefix$user"' -S '"$suffix"' -- '"$cur"' '));' 'fi;' return '0; }' bash: syntax error in conditional expression bash: syntax error near `2' + [[ -n '' ]] + (( i=1 )) + (( i < 2-1 )) + [[ -n '' ]] + (( names_only && headers_only )) + (( names_only || headers_only )) + (( ignore_errors )) + [[ de == \$\(* ]] + [[ de == \$\{* ]] + [[ de == \$* ]] + case "$prev" in + (( got_action )) + [[ ipset = - ]] + [[ de = -* ]] + (( save_format || names_only || headers_only )) + (( res_sort )) + (( ignore_errors && use_file )) + (( ignore_errors )) + (( use_file )) + COMPREPLY=($( compgen -W 'create n add del test destroy x list save \ restore flush rename e swap w help version' -- "$cur" )) ++ compgen -W 'create n add del test destroy x list save \ restore flush rename e swap w help version' -- de + [[ -n '' ]]