
Puedo correr,
svn status |grep -v .jasper$ |cut -d ' ' -f8 |sed '/.*\..*/!d' |xargs ls -altr --color=auto
muy bien. Pero cuando voy a agregar esto como alias (alias svtr="...") aparece un error que dice...
-bash: !d': event not found
¿Algunas ideas?
Respuesta1
Usar barra invertida \
para escapar de tu !
debería funcionar.
alias svtr="svn status |grep -v .jasper$ |cut -d ' ' -f8 |sed '/.*\..*/\!d' |xargs ls -altr --color=auto"
alias svtr
alias svtr='svn status |grep -v .jasper$ |cut -d '\'' '\'' -f8 |sed '\''/.*\..*/\!d'\'' |xargs ls -altr --color=auto'
En realidad, eso simplemente elimina el error, porque dentro ""
del shell intenta interpretar !
.
es posible que desees revertir las comillas (es decir, usar comillas simples para definir el alias, usar comillas dobles dentro del comando con alias y escapar de comillas simples cuando sea necesario.
Respuesta2
El comando !d
en tu sed
comando está causando esto, porque !
es el personaje de expansión del historial de Bash. Desactive temporalmente la expansión del historial, así:
set -H
alias svtr="..."
set +H
Deberias hacer eso.