
Eu posso correr,
svn status |grep -v .jasper$ |cut -d ' ' -f8 |sed '/.*\..*/!d' |xargs ls -altr --color=auto
bem. Mas quando vou adicionar isso como um alias (alias svtr="...") recebo um erro dizendo...
-bash: !d': event not found
Alguma ideia?
Responder1
Usar barra invertida \
para escapar do seu !
deve 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'
Na verdade, isso apenas elimina o erro, porque dentro ""
do shell tenta interpretar !
.
você pode querer reverter aspas (ou seja, usar aspas simples para definir o alias e usar aspas duplas dentro do comando com alias e escapar das aspas simples quando necessário.
Responder2
O !d
seu sed
comando está causando isso, porque !
é o caractere de expansão do histórico do Bash. Desative temporariamente a expansão do histórico, assim:
set -H
alias svtr="..."
set +H
Isso deve resolver.