2 votos

"sed" o "awk", lanzó en la apertura de la ventana de terminal

En algún momento, he notado un comportamiento extraño de la Terminal de la aplicación - ahora en la apertura de nueva ventana me sale esto como normal:

Last login: Tue Nov 27 11:54:21 on ttys001

pero no puedo ver el "~" signo y después del título de la ventana muestra "Terminal - sed - 80x24", lo que significa que la sed se está ejecutando. Después de golpear dos veces la tecla "enter", todo va normal, pero ahora, después de cada nuevo comando puedo entrar, tengo que golpear dos veces "enter" después de él. Esto me conduce loco! No tienen idea de lo que pasó. Tal vez hay algunas inicio-configuración de la secuencia de comandos para la terminal/bash? He comprobado .bash_profile se ve bien como lo que solía ser.

Aquí está mi .bash_profile archivo:

export DOCUMENTS=~/Documents
alias twrangler="open -a TextWrangler"
alias countloc="find -f . '(' -name '*.m' -or -name '*.mm' ')' -print | xargs wc -l"

# Terminal colours (after installing GNU coreutils)
# NM="\[\033[0;38m\]" #means no background and white lines
# HI="\[\033[0;37m\]" #change this for letter colors
# HII="\[\033[0;31m\]" #change this for letter colors
# SI="\[\033[0;33m\]" #this is for the current directory
# IN="\[\033[0m\]"
# export PS1="$NM[$SI\w$NM] $IN"

export HISTCONTROL=ignoredups # Ignores dupes in the history
shopt -s checkwinsize # After each command, checks the windows size and changes lines and columns

# bash completion settings (actually, these are readline settings)
bind "set completion-ignore-case on" # note: bind is used instead of setting these in .inputrc. This ignores case in bash completion
bind "set bell-style none" # No bell, because it's damn annoying
bind "set show-all-if-ambiguous On" # this allows you to automatically show completion without double tab-ing

# Turn on advanced bash completion if the file exists (get it here: http://www.caliban.org/bash/index.shtml#completion)
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

# Useful aliases
alias ls='ls $LS_OPTIONS -hF'
alias ll='ls $LS_OPTIONS -lhF'
alias l='ls $LS_OPTIONS -lAhF'

alias g='grep -i' #case insensitive grep
alias f='find . -iname'
alias ducks='du -cks * | sort -rn|head -11' # Lists the size of all the folders and files
alias top='top -o cpu'
alias systail='tail -f /var/log/system.log'

alias cd..="cd .."
alias c="clear"
alias e="exit"
alias ssh="ssh -X"
alias ..="cd .."
#alias mysqlstart='sudo /opt/local/bin/mysqld_safe5 &'
#alias mysqlstop='/opt/local/bin/mysqladmin5 -u root -p shutdown'
#alias remount='sudo ~/scripts/remount.rb'
#alias ffman='/Applications/Firefox.app/Contents/MacOS/firefox -ProfileManager'
#alias ffdev='/Applications/Firefox.app/Contents/MacOS/firefox -P rainbow' #' -chrome chrome://chromebug/content/chromebug.xul -firefox'
#alias fft1='/Applications/Firefox.app/Contents/MacOS/firefox -P test1'
#alias ffxr='/Applications/Minefield.app/Contents/MacOS/firefox -P xrefresh-dev' #' -chrome chrome://chromebug/content/chromebug.xul -firefox'
#alias ffxr2='/Applications/Minefield.app/Contents/MacOS/firefox -P xr2' #' -chrome chrome://chromebug/content/chromebug.xul -firefox'
#alias ff13='/Applications/Minefield.app/Contents/MacOS/firefox -P fb13' #' -chrome chrome://chromebug/content/chromebug.xul -firefox'
#alias ffhed='/Applications/Firefox.app/Contents/MacOS/firefox -P hed' #' -chrome chrome://chromebug/content/chromebug.xul -firefox'
#alias ffgae='/Applications/Minefield.app/Contents/MacOS/firefox -P gae' #' -chrome chrome://chromebug/content/chromebug.xul -firefox'
#alias ffgae2='/Applications/Firefox.app/Contents/MacOS/firefox -P gae' #' -chrome chrome://chromebug/content/chromebug.xul -firefox'
#alias runsvn='/usr/bin/sudo -u www /opt/local/bin/svnserve -d -r /var/svn'

#alias spotbuild='sudo mdutil -E /'

if [ -f /opt/local/etc/bash_completion ]; then
. /opt/local/etc/bash_completion
fi

COLOR_YELLOW="\[\e[33;10m\]"
COLOR_RED="\[\e[31;10m\]"
COLOR_GREEN="\[\e[32;10m\]"
COLOR_BLUE="\[\e[34;10m\]"
COLOR_NONE="\[\e[0m\]"
COLOR_NONEP="\[\e[38;0m\]"

git_dirty_flag() {
git status 2> /dev/null | grep -c : | awk '{if ($1 > 0) print "‚ö°"}'
}

parse_git_branch() {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ \1/'
}

prompt_func() {
previous_return_value=$?;
prompt="${COLOR_BLUE}\w${COLOR_GREEN}$(parse_git_branch)${COLOR_YELLOW}$(git_dirty_flag)${COLOR_NONEP}"
if test $previous_return_value -eq 0
then
PS1="${prompt}${COLOR_NONEP}${COLOR_NONE} "
else
PS1="${prompt}${COLOR_RED}${COLOR_NONE} "
fi
}
PROMPT_COMMAND=prompt_func

# MacPorts Installer addition on 2011-11-02_at_22:46:11: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.

1voto

Damien Puntos 3985

ok, he encontrado el problema. era difícil y varios resultados diferentes. pero siempre es aconsejable averiguar nuestros errores, así que aquí era el mío:

  1. he utilizado .bash_profile archivo con algunas opciones de configuración para el uso conveniente (como alias, colorear, etc.). he copiado el archivo de mi amigo y nunca miró detenidamente, sin embargo debe hacerse esto. hay algunas funciones de bash que se suma a la variable PROMPT_COMMAND el nombre de la actual rama de git, por lo que es conveniente cuando usted hace cd en esta carpeta, la rama se muestra automáticamente en color verde cerca de ~ signo, como esta: "~master". usted puede encontrar esto en .bash_profile como prompt_func y parse_git_branch funciones. están usando git comando

  2. este archivo de perfil siempre ha funcionado bien. pero en algún momento (hoy) se detuvo. así que me sacó de mi bash historia y después de la exploración completa, y el pensamiento han encontrado el problema. aquí está el extracto de salida de history:

437 curl-s-O http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain
438 chmod u+x git-credencial-osxkeychain
439 sudo mv git-credencial-osxkeychain `que git`

extraño comando

sudo mv git-credential-osxkeychain `which git`

fue la intención de mover archivo git-credencial-osxkeychain para el directorio, donde git reside (which git), para mi sistema es /usr/bin/git. pero lo que realmente estaba hecho es que este fichero se movió al directorio /usr/bin con el nombre de git y el directorio con el git sí era simplemente sobrescribe el archivo, correo.d. ha ido!! así que ahora, volviendo a las secuencias de comandos de funciones .bash_profile que es el uso de git, todo parece simple y obvio, no hay git, pero el archivo llamado git (que es ejecutable por cierto - de la utilidad de configuración de git credenciales) y funciones use esta utilidad pensando que es git sí mismo.

por lo tanto, ahora, la solución para mí es restaurar git instalación y cambiar el nombre de git archivo git-credencial-osxkeychain

curriculum vitae - nunca escribir código bash en una línea , a menos que usted entiende claramente lo que va a llevar a cada declaración de que los resultados

gracias por todos los que tomaron parte en esto.

0voto

Leonard Puntos 2832

La única otra secuencias de comandos que son de abastecimiento en su .bash_profile son

/etc/bash_completion

y

/opt/local/etc/bash_completion

Me gustaría comprobar si se ha actualizado recientemente y si están dañados. En cualquier caso me gustaría evitar llamar tanto (que también podría ser el problema). Si utiliza bash-completion de MacPorts sólo el uso de la segunda.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: