Bash deixou de funcionar

1. Bash deixou de funcionar

Luís paulo Paradiso
invernosantigos

(usa Linux Mint)

Enviado em 03/09/2023 - 02:58h

É um bug do tipo que não se sabe sequer por onde começar : O Bash do meu Linux Mint deixou completamente de funcionar. Quando a máquina inicia, ele fica inativo. É preciso abrir um terminal e invocar o comando "bash" para que ele volte a funcionar; mas tão logo esta janela de terminal é fechada, deixa de funcionar outra vez. Os comandos nohup e bg também não funcionam, mas era de se esperar, já que esses operam através do bash, justamente. O arquivo .bashrc, está com permissões de usuário e de execução ( o resultado de ls -l .bashrc é -rwxrwxr-- 1 invernos invernos 3771 set 3 02:28 .bashrc ).

Havia uma postagem em https://www.vivaolinux.com.br/topico/Iniciantes-no-Linux/Login-terminal-nao-executa-basrc, mass não serve para o meu caso

Pesquisando, descobri um comando para depuração ( bash -v -x ), mas não sei ler a saída, que é uma coisa quilométrica:

invernos@Valentine:~$ bash -v -x
# System-wide .bashrc file for interactive bash(1) shells.

# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.

# If not running interactively, don't do anything
[ -z "$PS1" ] && return
+ '[' -z '\s-\v\$ ' ']'

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
+ shopt -s checkwinsize

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
+ '[' -z '' ']'
+ '[' -r /etc/debian_chroot ']'

# set a fancy prompt (non-color, overwrite the one in /etc/profile)
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
+ '[' -n '' -a -n '' ']'
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
# PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
# ;;
#*)
# ;;
#esac

# enable bash completion in interactive shells
#if ! shopt -oq posix; then
# if [ -f /usr/share/bash-completion/bash_completion ]; then
# . /usr/share/bash-completion/bash_completion
# elif [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
# fi
#fi

# sudo hint
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
case " $(groups) " in *\ admin\ *|*\ sudo\ *)
if [ -x /usr/bin/sudo ]; then
cat <<-EOF
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

EOF
fi
esac
fi
+ '[' '!' -e /home/invernos/.sudo_as_admin_successful ']'

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
+ '[' -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ']'
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
+ case $- in

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
+ HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend
+ shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
+ HISTSIZE=1000
HISTFILESIZE=2000
+ HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
+ shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+ '[' -x /usr/bin/lesspipe ']'
++ SHELL=/bin/sh
++ lesspipe
+ eval 'export LESSOPEN="| /usr/bin/lesspipe %s";
export LESSCLOSE="/usr/bin/lesspipe %s %s";'
export LESSOPEN="| /usr/bin/lesspipe %s";
++ export 'LESSOPEN=| /usr/bin/lesspipe %s'
++ LESSOPEN='| /usr/bin/lesspipe %s'
export LESSCLOSE="/usr/bin/lesspipe %s %s";
++ export 'LESSCLOSE=/usr/bin/lesspipe %s %s'
++ LESSCLOSE='/usr/bin/lesspipe %s %s'

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
+ '[' -z '' ']'
+ '[' -r /etc/debian_chroot ']'

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
+ case "$TERM" in
+ color_prompt=yes

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
+ '[' -n '' ']'

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
+ '[' yes = yes ']'
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
unset color_prompt force_color_prompt
+ unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
+ case "$TERM" in
+ PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'

alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
+ '[' -x /usr/bin/dircolors ']'
+ test -r /home/invernos/.dircolors
++ dircolors -b
+ eval 'LS_COLORS='\''rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'\'';
export LS_COLORS'
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:';
++ LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:'
export LS_COLORS
++ export LS_COLORS
+ alias 'ls=ls --color=auto'
+ alias 'grep=grep --color=auto'
+ alias 'fgrep=fgrep --color=auto'
+ alias 'egrep=egrep --color=auto'

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
+ alias 'll=ls -alF'
alias la='ls -A'
+ alias 'la=ls -A'
alias l='ls -CF'
+ alias 'l=ls -CF'

# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
+ alias 'alert=notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
+ '[' -f /home/invernos/.bash_aliases ']'
+ . /home/invernos/.bash_aliases
alias nalup="sudo nala update"
++ alias 'nalup=sudo nala update'
alias nalug="sudo nala upgrade"
++ alias 'nalug=sudo nala upgrade'
alias nalin="sudo nala install -f"
++ alias 'nalin=sudo nala install -f'
alias nalau="sudo nala autoremove"
++ alias 'nalau=sudo nala autoremove'
alias nalcl="sudo nala clean"
++ alias 'nalcl=sudo nala clean'
alias aprin="sudo apt install --reinstall"
++ alias 'aprin=sudo apt install --reinstall'



# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
+ shopt -oq posix
+ '[' -f /usr/share/bash-completion/bash_completion ']'
+ . /usr/share/bash-completion/bash_completion
# -*- shell-script -*-
#
# bash_completion - programmable completion functions for bash 4.2+
#
# Copyright © 2006-2008, Ian Macdonald <ian@caliban.org>
# © 2009-2020, Bash Completion Maintainers
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# The latest version of this software can be obtained here:
#
# https://github.com/scop/bash-completion

BASH_COMPLETION_VERSINFO=(2 11)
++ BASH_COMPLETION_VERSINFO=(2 11)

if [[ $- == *v* ]]; then
BASH_COMPLETION_ORIGINAL_V_VALUE="-v"
else
BASH_COMPLETION_ORIGINAL_V_VALUE="+v"
fi
++ [[ himvxBH == *v* ]]
++ BASH_COMPLETION_ORIGINAL_V_VALUE=-v

if [[ ${BASH_COMPLETION_DEBUG-} ]]; then
set -v
else
set +v
fi
++ [[ -n '' ]]
++ set +v
++ _blacklist_glob='@(acroread.sh)'
++ shopt -s extglob progcomp
++ complete -u groups slay w sux
++ complete -A stopped -P '"%' -S '"' bg
++ complete -j -P '"%' -S '"' fg jobs disown
++ complete -v readonly unset
++ complete -A setopt set
++ complete -A shopt shopt
++ complete -A helptopic help
++ complete -a unalias
++ complete -c command type which
++ complete -b builtin
++ [[ linux-gnu == *@(solaris|aix)* ]]
++ _backup_glob='@(#*#|*@(~|.@(bak|orig|rej|swp|dpkg*|rpm@(orig|new|save))))'
++ complete -F _service service
++ _sysvdirs
++ sysvdirs=()
++ [[ -d /etc/rc.d/init.d ]]
++ [[ -d /etc/init.d ]]
++ sysvdirs+=(/etc/init.d)
++ [[ -f /etc/slackware-version ]]
++ return 0
++ for svcdir in "${sysvdirs[@]}"
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/acpid ]]
++ complete -F _service /etc/init.d/acpid
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/alsa-utils ]]
++ complete -F _service /etc/init.d/alsa-utils
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/anacron ]]
++ complete -F _service /etc/init.d/anacron
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/apache2 ]]
++ complete -F _service /etc/init.d/apache2
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/apache-htcacheclean ]]
++ complete -F _service /etc/init.d/apache-htcacheclean
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/apparmor ]]
++ complete -F _service /etc/init.d/apparmor
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/avahi-daemon ]]
++ complete -F _service /etc/init.d/avahi-daemon
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/bash.sh ]]
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/binfmt-support ]]
++ complete -F _service /etc/init.d/binfmt-support
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/bluetooth ]]
++ complete -F _service /etc/init.d/bluetooth
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/console-setup.sh ]]
++ complete -F _service /etc/init.d/console-setup.sh
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/cpulimit ]]
++ complete -F _service /etc/init.d/cpulimit
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/cron ]]
++ complete -F _service /etc/init.d/cron
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/cryptdisks ]]
++ complete -F _service /etc/init.d/cryptdisks
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/cryptdisks-early ]]
++ complete -F _service /etc/init.d/cryptdisks-early
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/cups ]]
++ complete -F _service /etc/init.d/cups
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/cups-browsed ]]
++ complete -F _service /etc/init.d/cups-browsed
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/dbus ]]
++ complete -F _service /etc/init.d/dbus
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/dhcpcd ]]
++ complete -F _service /etc/init.d/dhcpcd
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/dns-clean ]]
++ complete -F _service /etc/init.d/dns-clean
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/edac ]]
++ complete -F _service /etc/init.d/edac
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/gdomap ]]
++ complete -F _service /etc/init.d/gdomap
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/grub-common ]]
++ complete -F _service /etc/init.d/grub-common
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/hddtemp ]]
++ complete -F _service /etc/init.d/hddtemp
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/hwclock.sh ]]
++ complete -F _service /etc/init.d/hwclock.sh
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/irqbalance ]]
++ complete -F _service /etc/init.d/irqbalance
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/iwd ]]
++ complete -F _service /etc/init.d/iwd
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/kerneloops ]]
++ complete -F _service /etc/init.d/kerneloops
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/keyboard-setup.sh ]]
++ complete -F _service /etc/init.d/keyboard-setup.sh
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/kmod ]]
++ complete -F _service /etc/init.d/kmod
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/lightdm ]]
++ complete -F _service /etc/init.d/lightdm
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/lm-sensors ]]
++ complete -F _service /etc/init.d/lm-sensors
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/lvm2 ]]
++ complete -F _service /etc/init.d/lvm2
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/lvm2-lvmpolld ]]
++ complete -F _service /etc/init.d/lvm2-lvmpolld
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/mintsystem ]]
++ complete -F _service /etc/init.d/mintsystem
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/mono-xsp4 ]]
++ complete -F _service /etc/init.d/mono-xsp4
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/netifyd ]]
++ complete -F _service /etc/init.d/netifyd
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/networking ]]
++ complete -F _service /etc/init.d/networking
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/nmbd ]]
++ complete -F _service /etc/init.d/nmbd
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/openvpn ]]
++ complete -F _service /etc/init.d/openvpn
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/pcscd ]]
++ complete -F _service /etc/init.d/pcscd
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/plymouth ]]
++ complete -F _service /etc/init.d/plymouth
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/plymouth-log ]]
++ complete -F _service /etc/init.d/plymouth-log
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/postfix ]]
++ complete -F _service /etc/init.d/postfix
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/preload ]]
++ complete -F _service /etc/init.d/preload
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/privoxy ]]
++ complete -F _service /etc/init.d/privoxy
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/procps ]]
++ complete -F _service /etc/init.d/procps
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/pulseaudio-enable-autospawn ]]
++ complete -F _service /etc/init.d/pulseaudio-enable-autospawn
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/rsync ]]
++ complete -F _service /etc/init.d/rsync
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/samba-ad-dc ]]
++ complete -F _service /etc/init.d/samba-ad-dc
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/saned ]]
++ complete -F _service /etc/init.d/saned
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/screen-cleanup ]]
++ complete -F _service /etc/init.d/screen-cleanup
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/smartmontools ]]
++ complete -F _service /etc/init.d/smartmontools
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/smbd ]]
++ complete -F _service /etc/init.d/smbd
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/speech-dispatcher ]]
++ complete -F _service /etc/init.d/speech-dispatcher
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/squid ]]
++ complete -F _service /etc/init.d/squid
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/ssh ]]
++ complete -F _service /etc/init.d/ssh
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/tor ]]
++ complete -F _service /etc/init.d/tor
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/udev ]]
++ complete -F _service /etc/init.d/udev
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/ufw ]]
++ complete -F _service /etc/init.d/ufw
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/unattended-upgrades ]]
++ complete -F _service /etc/init.d/unattended-upgrades
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/uuidd ]]
++ complete -F _service /etc/init.d/uuidd
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/warsaw ]]
++ complete -F _service /etc/init.d/warsaw
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/x11-common ]]
++ complete -F _service /etc/init.d/x11-common
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/xpra ]]
++ complete -F _service /etc/init.d/xpra
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/zfs-import ]]
++ complete -F _service /etc/init.d/zfs-import
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/zfs-mount ]]
++ complete -F _service /etc/init.d/zfs-mount
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/zfs-share ]]
++ complete -F _service /etc/init.d/zfs-share
++ for svc in $svcdir/!($_backup_glob)
++ [[ -x /etc/init.d/zfs-zed ]]
++ complete -F _service /etc/init.d/zfs-zed
++ unset svc svcdir sysvdirs
++ [[ linux-gnu == *freebsd* ]]
++ shopt -u hostcomplete
++ complete -F _user_at_host talk ytalk finger
++ complete -F _known_hosts traceroute traceroute6 fping fping6 telnet rsh rlogin ftp dig mtr ssh-installkeys showmount
++ shopt -q cdable_vars
++ complete -F _cd -o nospace cd pushd
++ complete -F _command aoss command do else eval exec ltrace nice nohup padsp then time tsocks vsound xargs
++ complete -F _root_command fakeroot gksu gksudo kdesudo really
++ complete -F _longopt a2ps awk base64 bash bc bison cat chroot colordiff cp csplit cut date df diff dir du enscript env expand fmt fold gperf grep grub head irb ld ldd less ln ls m4 md5sum mkdir mkfifo mknod mv netstat nl nm objcopy objdump od paste pr ptx readelf rm rmdir sed seq shasum sha1sum sha224sum sha256sum sha384sum sha512sum shar sort split strip sum tac tail tee texindex touch tr uname unexpand uniq units vdir wc who
++ declare -Ag _xspecs
++ _install_xspec '!*.?(t)bz?(2)' bunzip2 bzcat pbunzip2 pbzcat lbunzip2 lbzcat
++ local 'xspec=!*.?(t)bz?(2)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.?(t)bz?(2)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.?(t)bz?(2)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.?(t)bz?(2)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.?(t)bz?(2)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.?(t)bz?(2)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.?(t)bz?(2)'
++ _install_xspec '!*.@(zip|[aegjswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|epub|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl)' unzip zipinfo
++ local 'xspec=!*.@(zip|[aegjswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|epub|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(zip|[aegjswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|epub|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(zip|[aegjswx]ar|exe|pk3|wsz|zargo|xpi|s[tx][cdiw]|sx[gm]|o[dt][tspgfc]|od[bm]|oxt|epub|apk|aab|ipa|do[ct][xm]|p[op]t[mx]|xl[st][xm]|pyz|whl)'
++ _install_xspec '*.Z' compress znew
++ local 'xspec=*.Z' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='*.Z'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.Z'
++ _install_xspec '!*.@(Z|[gGd]z|t[ag]z)' gunzip zcat
++ local 'xspec=!*.@(Z|[gGd]z|t[ag]z)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(Z|[gGd]z|t[ag]z)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(Z|[gGd]z|t[ag]z)'
++ _install_xspec '!*.@(Z|[gGdz]z|t[ag]z)' unpigz
++ local 'xspec=!*.@(Z|[gGdz]z|t[ag]z)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(Z|[gGdz]z|t[ag]z)'
++ _install_xspec '!*.Z' uncompress
++ local 'xspec=!*.Z' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.Z'
++ _install_xspec '!*.@(tlz|lzma)' lzcat lzegrep lzfgrep lzgrep lzless lzmore unlzma
++ local 'xspec=!*.@(tlz|lzma)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(tlz|lzma)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(tlz|lzma)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(tlz|lzma)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(tlz|lzma)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(tlz|lzma)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(tlz|lzma)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(tlz|lzma)'
++ _install_xspec '!*.@(?(t)xz|tlz|lzma)' unxz xzcat
++ local 'xspec=!*.@(?(t)xz|tlz|lzma)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(t)xz|tlz|lzma)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(t)xz|tlz|lzma)'
++ _install_xspec '!*.lrz' lrunzip
++ local 'xspec=!*.lrz' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.lrz'
++ _install_xspec '!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)' ee
++ local 'xspec=!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx)'
++ _install_xspec '!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|svg)' qiv
++ local 'xspec=!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|svg)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(gif|jp?(e)g|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|svg)'
++ _install_xspec '!*.@(gif|jp?(e)g?(2)|j2[ck]|jp[2f]|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|?(e)ps)' xv
++ local 'xspec=!*.@(gif|jp?(e)g?(2)|j2[ck]|jp[2f]|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|?(e)ps)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(gif|jp?(e)g?(2)|j2[ck]|jp[2f]|tif?(f)|png|p[bgp]m|bmp|x[bp]m|rle|rgb|pcx|fits|pm|?(e)ps)'
++ _install_xspec '!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' gv ggv kghostview
++ local 'xspec=!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(@(?(e)ps|?(E)PS|pdf|PDF)?(.gz|.GZ|.bz2|.BZ2|.Z))'
++ _install_xspec '!*.@(dvi|DVI)?(.@(gz|Z|bz2))' xdvi kdvi
++ local 'xspec=!*.@(dvi|DVI)?(.@(gz|Z|bz2))' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(dvi|DVI)?(.@(gz|Z|bz2))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(dvi|DVI)?(.@(gz|Z|bz2))'
++ _install_xspec '!*.dvi' dvips dviselect dvitype dvipdf advi dvipdfm dvipdfmx
++ local 'xspec=!*.dvi' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.dvi'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.dvi'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.dvi'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.dvi'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.dvi'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.dvi'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.dvi'
++ _install_xspec '!*.[pf]df' acroread gpdf
++ local 'xspec=!*.[pf]df' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.[pf]df'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.[pf]df'
++ _install_xspec '!*.@(pdf|fdf)?(.@(gz|GZ|bz2|BZ2|Z))' xpdf
++ local 'xspec=!*.@(pdf|fdf)?(.@(gz|GZ|bz2|BZ2|Z))' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(pdf|fdf)?(.@(gz|GZ|bz2|BZ2|Z))'
++ _install_xspec '!*.@(?(e)ps|pdf)' kpdf
++ local 'xspec=!*.@(?(e)ps|pdf)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(e)ps|pdf)'
++ _install_xspec '!*.@(okular|@(?(e|x)ps|?(E|X)PS|[pf]df|[PF]DF|dvi|DVI|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|epub|EPUB|odt|ODT|fb?(2)|FB?(2)|mobi|MOBI|g3|G3|chm|CHM)?(.?(gz|GZ|bz2|BZ2|xz|XZ)))' okular
++ local 'xspec=!*.@(okular|@(?(e|x)ps|?(E|X)PS|[pf]df|[PF]DF|dvi|DVI|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|epub|EPUB|odt|ODT|fb?(2)|FB?(2)|mobi|MOBI|g3|G3|chm|CHM)?(.?(gz|GZ|bz2|BZ2|xz|XZ)))' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(okular|@(?(e|x)ps|?(E|X)PS|[pf]df|[PF]DF|dvi|DVI|cb[rz]|CB[RZ]|djv?(u)|DJV?(U)|dvi|DVI|gif|jp?(e)g|miff|tif?(f)|pn[gm]|p[bgp]m|bmp|xpm|ico|xwd|tga|pcx|GIF|JP?(E)G|MIFF|TIF?(F)|PN[GM]|P[BGP]M|BMP|XPM|ICO|XWD|TGA|PCX|epub|EPUB|odt|ODT|fb?(2)|FB?(2)|mobi|MOBI|g3|G3|chm|CHM)?(.?(gz|GZ|bz2|BZ2|xz|XZ)))'
++ _install_xspec '!*.pdf' epdfview pdfunite
++ local 'xspec=!*.pdf' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.pdf'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.pdf'
++ _install_xspec '!*.@(cb[rz7t]|djv?(u)|?(e)ps|pdf)' zathura
++ local 'xspec=!*.@(cb[rz7t]|djv?(u)|?(e)ps|pdf)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(cb[rz7t]|djv?(u)|?(e)ps|pdf)'
++ _install_xspec '!*.@(?(e)ps|pdf)' ps2pdf ps2pdf12 ps2pdf13 ps2pdf14 ps2pdfwr
++ local 'xspec=!*.@(?(e)ps|pdf)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(e)ps|pdf)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(e)ps|pdf)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(e)ps|pdf)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(e)ps|pdf)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(e)ps|pdf)'
++ _install_xspec '!*.texi*' makeinfo texi2html
++ local 'xspec=!*.texi*' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.texi*'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.texi*'
++ _install_xspec '!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)' tex latex slitex jadetex pdfjadetex pdftex pdflatex texi2dvi xetex xelatex luatex lualatex
++ local 'xspec=!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?(la)tex|texi|dtx|ins|ltx|dbj)'
++ _install_xspec '!*.mp3' mpg123 mpg321 madplay
++ local 'xspec=!*.mp3' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.mp3'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.mp3'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.mp3'
++ _install_xspec '!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))' xine aaxine fbxine
++ local 'xspec=!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))'
++ _install_xspec '!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))' kaffeine dragon totem
++ local 'xspec=!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*@(.@(mp?(e)g|MP?(E)G|wm[av]|WM[AV]|avi|AVI|asf|vob|VOB|bin|dat|divx|DIVX|vcd|ps|pes|fli|flv|FLV|fxm|FXM|viv|rm|ram|yuv|mov|MOV|qt|QT|web[am]|WEB[AM]|mp[234]|MP[234]|m?(p)4[av]|M?(P)4[AV]|mkv|MKV|og[agmvx]|OG[AGMVX]|t[ps]|T[PS]|m2t?(s)|M2T?(S)|mts|MTS|wav|WAV|flac|FLAC|asx|ASX|mng|MNG|srt|m[eo]d|M[EO]D|s[3t]m|S[3T]M|it|IT|xm|XM|iso|ISO)|+([0-9]).@(vdr|VDR))?(.@(crdownload|part))'
++ _install_xspec '!*.@(avi|asf|wmv)' aviplay
++ local 'xspec=!*.@(avi|asf|wmv)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(avi|asf|wmv)'
++ _install_xspec '!*.@(rm?(j)|ra?(m)|smi?(l))' realplay
++ local 'xspec=!*.@(rm?(j)|ra?(m)|smi?(l))' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(rm?(j)|ra?(m)|smi?(l))'
++ _install_xspec '!*.@(mpg|mpeg|avi|mov|qt)' xanim
++ local 'xspec=!*.@(mpg|mpeg|avi|mov|qt)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(mpg|mpeg|avi|mov|qt)'
++ _install_xspec '!*.@(og[ag]|m3u|flac|spx)' ogg123
++ local 'xspec=!*.@(og[ag]|m3u|flac|spx)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(og[ag]|m3u|flac|spx)'
++ _install_xspec '!*.@(mp3|og[ag]|pls|m3u)' gqmpeg freeamp
++ local 'xspec=!*.@(mp3|og[ag]|pls|m3u)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(mp3|og[ag]|pls|m3u)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(mp3|og[ag]|pls|m3u)'
++ _install_xspec '!*.fig' xfig
++ local 'xspec=!*.fig' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.fig'
++ _install_xspec '!*.@(mid?(i)|cmf)' playmidi
++ local 'xspec=!*.@(mid?(i)|cmf)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(mid?(i)|cmf)'
++ _install_xspec '!*.@(mid?(i)|rmi|rcp|[gr]36|g18|mod|xm|it|x3m|s[3t]m|kar)' timidity
++ local 'xspec=!*.@(mid?(i)|rmi|rcp|[gr]36|g18|mod|xm|it|x3m|s[3t]m|kar)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(mid?(i)|rmi|rcp|[gr]36|g18|mod|xm|it|x3m|s[3t]m|kar)'
++ _install_xspec '!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)' modplugplay modplug123
++ local 'xspec=!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(669|abc|am[fs]|d[bs]m|dmf|far|it|mdl|m[eo]d|mid?(i)|mt[2m]|oct|okt?(a)|p[st]m|s[3t]m|ult|umx|wav|xm)'
++ _install_xspec '*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' vi vim gvim rvim view rview rgvim rgview gview emacs xemacs sxemacs kate kwrite
++ local 'xspec=*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ for cmd in "$@"
++ _xspecs[$cmd]='*.@([ao]|so|so.!(conf|*/*)|[rs]pm|gif|jp?(e)g|mp3|mp?(e)g|avi|asf|ogg|class)'
++ _install_xspec '!*.@(zip|z|gz|tgz)' bzme
++ local 'xspec=!*.@(zip|z|gz|tgz)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(zip|z|gz|tgz)'
++ _install_xspec '!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' netscape mozilla lynx galeon dillo elinks amaya epiphany
++ local 'xspec=!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(?([xX]|[sS])[hH][tT][mM]?([lL]))'
++ _install_xspec '!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)' oowriter lowriter
++ local 'xspec=!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxw|stw|sxg|sgl|doc?([mx])|dot?([mx])|rtf|txt|htm|html|?(f)odt|ott|odm|pdf)'
++ _install_xspec '!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)' ooimpress loimpress
++ local 'xspec=!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxi|sti|pps?(x)|ppt?([mx])|pot?([mx])|?(f)odp|otp)'
++ _install_xspec '!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)' oocalc localc
++ local 'xspec=!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxc|stc|xls?([bmx])|xlw|xlt?([mx])|[ct]sv|?(f)ods|ots)'
++ _install_xspec '!*.@(sxd|std|sda|sdd|?(f)odg|otg)' oodraw lodraw
++ local 'xspec=!*.@(sxd|std|sda|sdd|?(f)odg|otg)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxd|std|sda|sdd|?(f)odg|otg)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxd|std|sda|sdd|?(f)odg|otg)'
++ _install_xspec '!*.@(sxm|smf|mml|odf)' oomath lomath
++ local 'xspec=!*.@(sxm|smf|mml|odf)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxm|smf|mml|odf)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(sxm|smf|mml|odf)'
++ _install_xspec '!*.odb' oobase lobase
++ local 'xspec=!*.odb' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.odb'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.odb'
++ _install_xspec '!*.[rs]pm' rpm2cpio
++ local 'xspec=!*.[rs]pm' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.[rs]pm'
++ _install_xspec '!*.aux' bibtex
++ local 'xspec=!*.aux' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.aux'
++ _install_xspec '!*.po' poedit gtranslator kbabel lokalize
++ local 'xspec=!*.po' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.po'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.po'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.po'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.po'
++ _install_xspec '!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])' harbour gharbour hbpp
++ local 'xspec=!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@([Pp][Rr][Gg]|[Cc][Ll][Pp])'
++ _install_xspec '!*.[Hh][Rr][Bb]' hbrun
++ local 'xspec=!*.[Hh][Rr][Bb]' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.[Hh][Rr][Bb]'
++ _install_xspec '!*.ly' lilypond ly2dvi
++ local 'xspec=!*.ly' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.ly'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.ly'
++ _install_xspec '!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))' cdiff
++ local 'xspec=!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(dif?(f)|?(d)patch)?(.@([gx]z|bz2|lzma))'
++ _install_xspec '!@(*.@(ks|jks|jceks|p12|pfx|bks|ubr|gkr|cer|crt|cert|p7b|pkipath|pem|p10|csr|crl)|cacerts)' portecle
++ local 'xspec=!@(*.@(ks|jks|jceks|p12|pfx|bks|ubr|gkr|cer|crt|cert|p7b|pkipath|pem|p10|csr|crl)|cacerts)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!@(*.@(ks|jks|jceks|p12|pfx|bks|ubr|gkr|cer|crt|cert|p7b|pkipath|pem|p10|csr|crl)|cacerts)'
++ _install_xspec '!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)' kid3 kid3-qt
++ local 'xspec=!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)' cmd
++ shift
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)'
++ for cmd in "$@"
++ _xspecs[$cmd]='!*.@(mp[234c]|og[ag]|@(fl|a)ac|m4[abp]|spx|tta|w?(a)v|wma|aif?(f)|asf|ape)'
++ unset -f _install_xspec
++ complete -F _minimal ''
++ complete -D -F _completion_loader
++ compat_dir=/etc/bash_completion.d
++ [[ -d /etc/bash_completion.d ]]
++ [[ -r /etc/bash_completion.d ]]
++ [[ -x /etc/bash_completion.d ]]
++ for i in "$compat_dir"/*
++ [[ apt-linux-mint != @(@(#*#|*@(~|.@(bak|orig|rej|swp|dpkg*|rpm@(orig|new|save))))|Makefile*|@(acroread.sh)) ]]
++ [[ -f /etc/bash_completion.d/apt-linux-mint ]]
++ [[ -r /etc/bash_completion.d/apt-linux-mint ]]
++ . /etc/bash_completion.d/apt-linux-mint
+++ have apt
+++ unset -v have
+++ _have apt
+++ PATH=/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/invernos/.pyenv/shims:/home/invernos/.pyenv/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/invernos/.local/bin:/home/invernos/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/sbin:/sbin:/usr/local/sbin
+++ type apt
+++ have=yes
+++ complete -F _apt apt
++ for i in "$compat_dir"/*
++ [[ git-prompt != @(@(#*#|*@(~|.@(bak|orig|rej|swp|dpkg*|rpm@(orig|new|save))))|Makefile*|@(acroread.sh)) ]]
++ [[ -f /etc/bash_completion.d/git-prompt ]]
++ [[ -r /etc/bash_completion.d/git-prompt ]]
++ . /etc/bash_completion.d/git-prompt
+++ [[ -e /usr/lib/git-core/git-sh-prompt ]]
+++ . /usr/lib/git-core/git-sh-prompt
++++ __git_printf_supports_v=
++++ printf -v __git_printf_supports_v -- %s yes
++ unset compat_dir i _blacklist_glob
++ user_completion=/home/invernos/.bash_completion
++ [[ /usr/share/bash-completion/bash_completion != \/\h\o\m\e\/\i\n\v\e\r\n\o\s\/\.\b\a\s\h\_\c\o\m\p\l\e\t\i\o\n ]]
++ [[ -r /home/invernos/.bash_completion ]]
++ unset user_completion
++ unset -f have
++ unset have
++ set -v
unset BASH_COMPLETION_ORIGINAL_V_VALUE
++ unset BASH_COMPLETION_ORIGINAL_V_VALUE




  


2. Re: Bash deixou de funcionar

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 03/09/2023 - 04:42h





tentou resolver reinstalando o bash ???



------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




3. Re: Bash deixou de funcionar

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/09/2023 - 05:11h

Prezado, acho que seria bom você descrever melhor o seu problema, incluindo uma apresentação acurada de o que você tentou fazer e não funcionou.

Se realmente o bash tivesse deixado completamente de funcionar, provavelmente sua máquina não teria dado um boot bem sucedido, você não teria feito login, não teria conseguido abrir o terminal, e não teria conseguido produzir a “saída quilométrica” que você colou acima quando o invocou com os argumentos -x e -v.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


4. Re: Bash deixou de funcionar

Luís paulo Paradiso
invernosantigos

(usa Linux Mint)

Enviado em 03/09/2023 - 08:45h

Muito bem: não carrega o bash. Alias e/ou scripts não são executados. Simplesmente isso. Eu não sei como testar. Gerar outro .bashrc não funciona. O problema - me parece - é de inicialização: Existe, mas não inicia, à não ser que eu dê o comando "bash" num terminal. Aí inicia, mas só enquanto este terminal permanecer ativo. Se eu fechar ou se enviar o terminal para o background, o bash pára de novo. Colocar o comando na inicialização automática ( startup aplications ) não funciona.

A complicação, é que trata-e de Linux Mint ( 21.2 "Victoria" ) que emprega o ambiente Cinnamon, e tem várias coisas diferenciadas ( pacotes Appimages, por exemplo, tendem à não funcionar no Mint, ou funcionam por pouco tempo ). O certo seria eu consultar no MintFóruns, mas não encontrei nenhuma referência ali, e desconfio que possa ser um problema mais geral como problema de path. Então quero começar por aí. Trabalho de base, adquirir conhecimento fundamental, antes de apelar para o fórum especializado em Mint. Como eu disse, não sei o básico: Não sei como se testa; não tenho noção de como o bash é iniciado; não sei como conferir se o path está correto ou não.



5. Re: Bash deixou de funcionar

Clodoaldo Santos
clodoaldops

(usa Linux Mint)

Enviado em 03/09/2023 - 10:08h

Primeiro tente o básico
Reinicie pelas opções avançadas, modo de recuperação, corrigir pacotes quebrados, reinicie PC



6. Re: Bash deixou de funcionar

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/09/2023 - 13:12h

invernosantigos escreveu:

Muito bem: não carrega o bash. Alias e/ou scripts não são executados. Simplesmente isso. Eu não sei como testar. Gerar outro .bashrc não funciona. O problema - me parece - é de inicialização: Existe, mas não inicia, à não ser que eu dê o comando "bash" num terminal. Aí inicia, mas só enquanto este terminal permanecer ativo. Se eu fechar ou se enviar o terminal para o background, o bash pára de novo. Colocar o comando na inicialização automática ( startup aplications ) não funciona.


Melhorou a descrição. Contudo, lembre-se que nós não temos visão de qual operação você está fazendo. “Não carrega o bash” quando você tenta fazer qual operação? Clicar num ícone (se sim, qual ícone?)? Quando faz login pelo console em modo texto? Quando faz login via SSH?

Note que, de acordo com sua própria descrição, quando você invoca o bash manualmente, tudo o que você esperava que acontecesse de fato acontece. Isso pode ser chamado de “carregar o bash”.

Tem certeza de que a forma que você está usando para supostamente invocar o bash como interpretador de comandos sequer tenta mesmo executá-lo? Será que essa invocação não está configurada (deliberadamente ou em virtude da instalação de algum pacote) executando alguma outra coisa (sh, dash, zsh, fish, tcsh etc.)? Já confirmou se o shell que está atribuído ao seu usuário não foi alterado para algo diferente de “/bin/bash”?


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


7. Re: Bash deixou de funcionar

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 03/09/2023 - 13:20h




manda aí pra gente
cat /etc/passwd 



------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------




8. Re: Bash deixou de funcionar

Luís paulo Paradiso
invernosantigos

(usa Linux Mint)

Enviado em 03/09/2023 - 17:11h

Obrigado à todos vcs, por td ajuda ! Vamos por partes, então. Respondendo ao apóstolo: Trata-se do carregamento automático na inicialização do Mint ( o Mint 21.2 é baseado no Ubuntu Jammy, esqueci de dizer ). O bash deveria estar sendo carregado junto com o shell, na inicialização. E o shell etá perfeito e funcional, todas as vezes, à não ser pelo Bash. Em condições normais não faria falta, e eu nem notaria, mas atualmente, instalei uns aliases para o Nala ( https://diolinux.com.br/tecnologia/nala-uma-bela-interface-para-o-apt.html ) para facilitar a minha vida, porque estou com um problema no teclado ( teclas falhando, como o S, o X e o W ), o que me obriga à ficar alternando para o teclado virtual e torna a digitação muito penosa. Trocar essa coisa imediatamente não é possível, pq só terei dinheiro disponível no fim do mês ( aposentado do INSS ), e a minha prioridade é trocar primeiro um HD ( de banco de dados ) que está acumulando muitas falhas -- resumindo, aquela situação chata em que o problema tem solução, mas não para agora, e pode ficar pior -- e aí me acontece essa beleza ( bug no bash ) que de outro modo, eu nem teria notado ). Nem sei de quanto tempo está assim. Usar o ponto de recuperação do Timeshift não funciona, então é anterior ao pontos de restauro mais recentes ( são semanais, à não ser quando há uma atualização grande, com 8-10 pacotes de uma vez. Não há pacotes quebrados. Mas por experiência própria ( 20 anos de Linux ), sei que bugs do Python podem não aparecer durante meses ( tanto que me tornei crítico da excessiva dependência do Python, e da falta de ferramentas de depuração dele ). A interface do Cinnamon tem certamente algum problema com o Python, que vem desde a vesrão anterior ( Mint 21.1 Vera, um do piores Mint que já houve. Muitos bugs ). À saber : as GUIs do Gerenciador de Energia e e de Idioma do Sistema não abrem e a depuração delas mostra erros no Python, mas posso usar a linha de comando. Esse é o único bug que encontrei até agora na versão atual do Mint. A última vez que eu tive problema com bash foi na versão Mint 21.0, quase 2 anos atrás; mas regenerar o bash resolveu. Tive problemas também com o Brew nessa ocasião ( 2 anos atrás ), mas era problema de path devido ao Pyenv, mas foi reparado ( o que não quer dizer que o path esteja perfeito, apenas voltou à funcionar corretamente na ocasião ). Agora ( 2 anos ) está retornando o path correto “/bin/bash”

Quanto à solicitação do Mauriciodez ( um cara bem reputado por aqui, em que eu confio ), a saída de "cat /etc/passwd" diz :

invernos@Valentine:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:102:105::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:103:106:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
syslog:x:104:111::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:112:TPM software stack,,,:/var/lib/tpm:/bin/false
rtkit:x:107:113:RealtimeKit,,,:/proc:/usr/sbin/nologin
systemd-coredump:x:108:114:systemd Core Dumper,,,:/run/systemd:/usr/sbin/nologin
kernoops:x:109:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin
uuidd:x:110:119::/run/uuidd:/usr/sbin/nologin
cups-pk-helper:x:111:115:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
lightdm:x:112:120:Light Display Manager:/var/lib/lightdm:/bin/false
tcpdump:x:113:122::/nonexistent:/usr/sbin/nologin
avahi-autoipd:x:115:125:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
usbmux:x:116:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
nm-openvpn:x:117:126:NetworkManager OpenVPN,,,:/var/lib/openvpn/chroot:/usr/sbin/nologin
geoclue:x:118:127::/var/lib/geoclue:/usr/sbin/nologin
dnsmasq:x:119:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
pulse:x:120:128:PulseAudio daemon,,,:/run/pulse:/usr/sbin/nologin
_flatpak:x:121:131:Flatpak system-wide installation helper,,,:/nonexistent:/usr/sbin/nologin
avahi:x:122:132:Avahi mDNS daemon,,,:/run/avahi-daemon:/usr/sbin/nologin
saned:x:123:133::/var/lib/saned:/usr/sbin/nologin
colord:x:124:134:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
fwupd-refresh:x:125:135:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
hplip:x:126:7:HPLIP system user,,,:/run/hplip:/bin/false
invernos:x:1000:1000:Deanne,,,:/home/invernos:/bin/bash
sssd:x:127:137:SSSD system user,,,:/var/lib/sss:/usr/sbin/nologin
lxc-dnsmasq:x:128:138:LXC dnsmasq,,,:/var/lib/lxc:/usr/sbin/nologin
debian-tor:x:129:141::/var/lib/tor:/bin/false
privoxy:x:130:65534::/etc/privoxy:/usr/sbin/nologin
postfix:x:131:143::/var/spool/postfix:/usr/sbin/nologin
backuppc:x:132:145:BackupPC,,,:/var/lib/backuppc:/bin/sh

Obrigado à todo por perderem seu tempo com um principiante, que à essas alturas ( no Linux, desde o saudoso Trusty Tahr ) já deveria saber bem mais, mas eu nunca nem precisei nem tive problemas com o bash. Costumo à contar que comecei no Linux do pior jeito. Principiante tem problemas com o apt, instalação de pacotes, safe mode, recovery mode; eu de cara tive problemas com dependência circular, precisando aprender à instalar pacotes à unha, particionar disco manualmente para instalação, quebra do .drmc, coisas assim. Ou seja, comecei meio que do avesso, pelo mais difícil; e não desisti pq o Ruinwindows não é opção, muito ruim. Tenho uma relação de ódio com ele, e infelizmente o ódio parece ser mútuo. Me dê o Linux mais fuleiro, daquele que vc tem montar os discos manualmente, eu dou conta. Me dê um windows, e em 20 minutos já tropeço em um bug dele. Não é para menos, sempre tem tantos...




9. Re: Bash deixou de funcionar

Paulo
paulo1205

(usa Ubuntu)

Enviado em 04/09/2023 - 01:32h

Ainda na linha de entender o que está acontecendo.

Nesse “carregamento automático na inicialização” de que você fala (eu ainda não entendi se isso é uma janela no ambiente gráfico e se tal janela é aberta automaticamente ou se em resposta a algum evento que você selecionou, ou se é no console de texto, ou alguma outra situação, mas agora nem vem ao caso), qual a saída quando você digita os seguintes comandos (_antes_ de invocar manualmente o bash, para conseguir fazer funcionar a completação de comandos e invocar o .bashrc)?

    • tty (quero saber se você tem um tty devidamente atribuído)
    • ps (quero confirmar que o shell realmente foi invocado com o nome “/bin/bash”, e se tem alguma opção que possa estar afetando seu funcionamento)
    • env (quero ver se há alguma variável de ambiente que possa afetar o comportamento, tal como POSIXLY_CORRECT)
    • shopt (quero ver se há alguma opção ligada (ou desligada) que possa afetar seu comportamento)


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)


10. Re: Bash deixou de funcionar

Luís paulo Paradiso
invernosantigos

(usa Linux Mint)

Enviado em 04/09/2023 - 03:18h

Cara ! eu nem me lembrei do "env" ! ( De qualquer modo, não sou entendido em Ambiente ). Mas eu acabei de testar o Brew, e constatei que não estava realmente funcionando ( e seria realmente estranho se estivesse ). O comando de teste e diagnóstico "brew doctor" retornava um monte de linhas, mas nada que indicasse que o brew realmente estivesse funcionado. Como não fiz manutenção nele por uns 6 meses, aproximadamente, não vi que precisava de uma atualização. O comando/ferramenta de diagnótico "brew doctor" indicou "libglade" com problemas, provavelmente obsoleto. Removi. Executei "brew doctor" de novo e deu um aviso de erro "Error: Unexpected run command" que eu não sabia como resolver, mas encontrei solução no Github ( em : https://github.com/Homebrew/homebrew-core/issues/131291 ). Seguindo as instruções, desinstalei e reinstalei o golang, e o brew voltou à funcionar. Mas o bash, não. Mas pelo menos o brew está conseguindo invocar o bash, sem que eu precise invocar o bash manualmente.

Quanto aos comandos solicitados, a lista segue abaixo:

invernos@Valentine:~$ tty
/dev/pts/1
invernos@Valentine:~$ ps
PID TTY TIME CMD
60338 pts/1 00:00:00 bash
77983 pts/1 00:00:00 ps
invernos@Valentine:~$ env
SHELL=/bin/bash
SESSION_MANAGER=local/Valentine:@/tmp/.ICE-unix/3592,unix/Valentine:/tmp/.ICE-unix/3592
QT_ACCESSIBILITY=1
COLORTERM=truecolor
PYENV_SHELL=bash
XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdg
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
GTK_IM_MODULE=fcitx
LANGUAGE=pt_BR
LC_ADDRESS=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
CINNAMON_VERSION=5.8.4
XMODIFIERS=@im=fcitx
HOMEBREW_PREFIX=/home/linuxbrew/.linuxbrew
DESKTOP_SESSION=cinnamon
LC_MONETARY=pt_BR.UTF-8
GTK_MODULES=gail:atk-bridge
XDG_SEAT=seat0
PWD=/home/invernos
XDG_SESSION_DESKTOP=cinnamon
LOGNAME=invernos
QT_QPA_PLATFORMTHEME=qt5ct
XDG_SESSION_TYPE=x11
MANPATH=/home/linuxbrew/.linuxbrew/share/man:/home/linuxbrew/.linuxbrew/share/man::
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
XAUTHORITY=/home/invernos/.Xauthority
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/invernos
GDM_LANG=pt_BR
HOME=/home/invernos
LC_PAPER=pt_BR.UTF-8
LANG=pt_BR.UTF-8
XDG_CURRENT_DESKTOP=X-Cinnamon
VTE_VERSION=6800
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/46532b98_d44c_4d80_bb7f_39b29a9243eb
CLUTTER_IM_MODULE=fcitx
INFOPATH=/home/linuxbrew/.linuxbrew/share/info:/home/linuxbrew/.linuxbrew/share/info:
XDG_SESSION_CLASS=user
TERM=xterm-256color
LC_IDENTIFICATION=pt_BR.UTF-8
USER=invernos
GNOME_TERMINAL_SERVICE=:1.122
HOMEBREW_CELLAR=/home/linuxbrew/.linuxbrew/Cellar
DISPLAY=:0
SHLVL=1
LC_TELEPHONE=pt_BR.UTF-8
QT_IM_MODULE=fcitx
HOMEBREW_REPOSITORY=/home/linuxbrew/.linuxbrew/Homebrew
LC_MEASUREMENT=pt_BR.UTF-8
XDG_VTNR=7
XDG_SESSION_ID=c1
PAPERSIZE=a4
XDG_RUNTIME_DIR=/run/user/1000
COMPIZ_CONFIG_PROFILE=mint
PYENV_ROOT=/home/invernos/.pyenv
LC_TIME=pt_BR.UTF-8
GTK3_MODULES=xapp-gtk3-module
XDG_DATA_DIRS=/usr/share/cinnamon:/usr/share/gnome:/home/invernos/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
PATH=/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/invernos/.pyenv/shims:/home/invernos/.pyenv/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/invernos/.local/bin:/home/invernos/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
GDMSESSION=cinnamon
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
LC_NUMERIC=pt_BR.UTF-8
_=/usr/bin/env
invernos@Valentine:~$ shopt
autocd off
assoc_expand_once off
cdable_vars off
cdspell off
checkhash off
checkjobs off
checkwinsize on
cmdhist on
compat31 off
compat32 off
compat40 off
compat41 off
compat42 off
compat43 off
compat44 off
complete_fullquote on
direxpand off
dirspell off
dotglob off
execfail off
expand_aliases on
extdebug off
extglob on
extquote on
failglob off
force_fignore on
globasciiranges on
globstar off
gnu_errfmt off
histappend off
histreedit off
histverify off
hostcomplete off
huponexit off
inherit_errexit off
interactive_comments on
lastpipe off
lithist off
localvar_inherit off
localvar_unset off
login_shell on
mailwarn off
no_empty_cmd_completion off
nocaseglob off
nocasematch off
nullglob off
progcomp on
progcomp_alias off
promptvars on
restricted_shell off
shift_verbose off
sourcepath on
xpg_echo off
retornava muita coisa, ma nada que confirmasse o funcionamento do brew. Como ele estava sem manutenção à 6 meses, aproximadamente, não notei que faltava uma atualização. O


invernos@Valentine:~$ tty
/dev/pts/1
invernos@Valentine:~$ ps
PID TTY TIME CMD
60338 pts/1 00:00:00 bash
77983 pts/1 00:00:00 ps
invernos@Valentine:~$ env
SHELL=/bin/bash
SESSION_MANAGER=local/Valentine:@/tmp/.ICE-unix/3592,unix/Valentine:/tmp/.ICE-unix/3592
QT_ACCESSIBILITY=1
COLORTERM=truecolor
PYENV_SHELL=bash
XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdg
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
GTK_IM_MODULE=fcitx
LANGUAGE=pt_BR
LC_ADDRESS=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
CINNAMON_VERSION=5.8.4
XMODIFIERS=@im=fcitx
HOMEBREW_PREFIX=/home/linuxbrew/.linuxbrew
DESKTOP_SESSION=cinnamon
LC_MONETARY=pt_BR.UTF-8
GTK_MODULES=gail:atk-bridge
XDG_SEAT=seat0
PWD=/home/invernos
XDG_SESSION_DESKTOP=cinnamon
LOGNAME=invernos
QT_QPA_PLATFORMTHEME=qt5ct
XDG_SESSION_TYPE=x11
MANPATH=/home/linuxbrew/.linuxbrew/share/man:/home/linuxbrew/.linuxbrew/share/man::
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
XAUTHORITY=/home/invernos/.Xauthority
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/invernos
GDM_LANG=pt_BR
HOME=/home/invernos
LC_PAPER=pt_BR.UTF-8
LANG=pt_BR.UTF-8
XDG_CURRENT_DESKTOP=X-Cinnamon
VTE_VERSION=6800
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/46532b98_d44c_4d80_bb7f_39b29a9243eb
CLUTTER_IM_MODULE=fcitx
INFOPATH=/home/linuxbrew/.linuxbrew/share/info:/home/linuxbrew/.linuxbrew/share/info:
XDG_SESSION_CLASS=user
TERM=xterm-256color
LC_IDENTIFICATION=pt_BR.UTF-8
USER=invernos
GNOME_TERMINAL_SERVICE=:1.122
HOMEBREW_CELLAR=/home/linuxbrew/.linuxbrew/Cellar
DISPLAY=:0
SHLVL=1
LC_TELEPHONE=pt_BR.UTF-8
QT_IM_MODULE=fcitx
HOMEBREW_REPOSITORY=/home/linuxbrew/.linuxbrew/Homebrew
LC_MEASUREMENT=pt_BR.UTF-8
XDG_VTNR=7
XDG_SESSION_ID=c1
PAPERSIZE=a4
XDG_RUNTIME_DIR=/run/user/1000
COMPIZ_CONFIG_PROFILE=mint
PYENV_ROOT=/home/invernos/.pyenv
LC_TIME=pt_BR.UTF-8
GTK3_MODULES=xapp-gtk3-module
XDG_DATA_DIRS=/usr/share/cinnamon:/usr/share/gnome:/home/invernos/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
PATH=/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/invernos/.pyenv/shims:/home/invernos/.pyenv/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:/home/invernos/.local/bin:/home/invernos/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
GDMSESSION=cinnamon
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
LC_NUMERIC=pt_BR.UTF-8
_=/usr/bin/env
invernos@Valentine:~$ shopt
autocd off
assoc_expand_once off
cdable_vars off
cdspell off
checkhash off
checkjobs off
checkwinsize on
cmdhist on
compat31 off
compat32 off
compat40 off
compat41 off
compat42 off
compat43 off
compat44 off
complete_fullquote on
direxpand off
dirspell off
dotglob off
execfail off
expand_aliases on
extdebug off
extglob on
extquote on
failglob off
force_fignore on
globasciiranges on
globstar off
gnu_errfmt off
histappend off
histreedit off
histverify off
hostcomplete off
huponexit off
inherit_errexit off
interactive_comments on
lastpipe off
lithist off
localvar_inherit off
localvar_unset off
login_shell on
mailwarn off
no_empty_cmd_completion off
nocaseglob off
nocasematch off
nullglob off
progcomp on
progcomp_alias off
promptvars on
restricted_shell off
shift_verbose off
sourcepath on
xpg_echo off

Notei que shopt retorna uma lista grande de opções, mas suponho que seja por causa do brew. Há uma em especial, que pelo nome me chamou bastante a atenção: "sourcepath" ( on ). Mas, realmente não entendo nada disso. Sou simplesmente caipira no tema.

Quanto ao “carregamento automático na inicialização” à que me referi, é apenas que espero que o bash comece à funcionar automaticamente à cada sessão ( eu suponho que este seja o comportamento normal dele, me corrija e for expectativa errada minha; como eu disse, sou caipira no tema ). Nota : Versões anteriores do Mint ( 20.3 e 21.0 ) apresentaram problemas no Systemd ( Tuned e Ulimit não iniciavam ) mas o problema foi resolvido com o tuned, e o Ulimit ( que usa o bash ) foi substituído pelo Ananicy.







11. Re: Bash deixou de funcionar

Luís paulo Paradiso
invernosantigos

(usa Linux Mint)

Enviado em 08/09/2023 - 03:14h


Fiz uma pesquisa para descobrir o termo correto que eu deveria usar, e eu encontrei : É o Interpretador Bash que não estava iniciando. Tive que fazer várias tentativas até encontrar o comando correto para iniciá-lo. É simplesmentte "bash" ou "exec bash", mas ambos exigem terminal ativo. Fechando o terminal, o bash encerra. E não há como enviar o terminal ou tarefa para o segundo plano. Resolvi o erro de inicialização. O método tradicional, via init.d ( em /etc/init.d/bash.sh ) vem cronicamente deixando de funcionar no Mint já faz algum tempo desde que houve mudança plena para o systemd -- é o que houve com o Tuned e outros gerenciadores de clock da CPU. Eles iniciavam com Init.d, mass não funcionam mais, e tiveram que sser atualizados para systemd. Atualmente, poucos serviços, apenass serviços legados, ainda iniciam via init.d.

Eu tive sucesso em criar uma inicialização via systemd ( já conto como ), mas continuo fracassando no essencial; O bash não permanece ativo em segundo plano.

Para iniciar o bash via systemd, é preciso criar um arquivo unit ( unidade de serviço ) bash.service em /etc/systemd/system/multi-user.target.wants/bash.service, e depois habilitá-lo com

sudo systemctl enable bash.service

e iniciá-lo com

sudo systemctl start bash.service

Então, vai exigir atualização do systemd ( vem o aviso "Warning: The unit file, source configuration file or drop-ins of bash.service changed on disk. Run 'systemctl daemon-reload' to reload units". - AVISO: Um arquivo de unidade, arquivo de configuração de origem ou drop-in para bash.service foi modificado no disco. Execute "systemctl daemon-reload" para recarregar a unidade. )

basta então "systemctl daemon-reload", e depois habilitar e iniciar como eu expus acima.

O detalhe essencial está no arquivo unit: A linha ExecStart, não é ExecStart=bash, como seria intuitivo achar, mas tem que conter o caminho completo correto :

ExecStart=/bin/bash /home/invernos/.bashrc

Senão, teremos um aviso de erro ( ao tentar ativar, com "sudo systemctl start bash.service" , retorna "ExecStart=exec bash (code=exited, status=203/EXEC" que indica o caminho para o executável ( ExecStart ) está corrompido.

O diabos aqui, é que eu obtenho confirmação através do comando

systemctl status bash.service

que o serviço bash.sservice está ativo. Mas esse retorno é enganoso, porque o interpretador é iniciado mas não permanece ativo ( não há terminal ativo em segundo plano ). É isso ( eu esperava algum tty em segundo plano. Errei ? ). Pelo que entendi, o systemd tem um daemon ativo executando o interpretador, mas o interpretador não está executando nada, nem há terminal tty ativo )

Alguém tem alguma idéia do porque desse comportamento ? Em tese, como o brew está rodando e ativo ( confirmado pelo comando "brew doctor", embora a resposta demore muito tempo - mais de 20 segundos ), isso deveria significar que o bash está ativo, já que o brew roda no bash. Mas parece que o brew está de alguma forma monopolizando o bash, pois o bash não parece executar nenhuma outra atividade fora o brew, nem mesmo uma simples alias. Preciso sempre abrir um novo terminal com o comando "bash" para que ele execute outros scripts fora o brew.






12. Uma novidade...

Luís paulo Paradiso
invernosantigos

(usa Linux Mint)

Enviado em 08/09/2023 - 18:12h


E apareceu uma novidade: Os logs de inicialização estão dizendo: "/home/user/.bashrc: linha 8: return: possível retornar (`return') apenas de uma função ou script carregado (com `source')"



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts