É possível inserir um separador após o comando em um prompt? Isto é um exemplo:
~/Desktop: ls -al
-------------------------------------
total 80
drwx------+ 6 eddie staff 204B Apr 29 16:57 .
drwxr-xr-x+ 54 eddie staff 1.8K Apr 30 10:54 ..
~/Desktop:
Especificamente, quero adicionar a parte --------- após emitir um comando para distinguir mais facilmente o comando do resultado
Responder1
No zsh, você pode definir a função de ganchopreexec
para ecoar uma string especificada antes de cada comando ser executado.
No bash, você pode usar o DEBUG
trap para configurar um gancho pré-executivo para fazer o mesmo.
Você definiria uma função preexec() mais ou menos assim:
preexec () { echo "-------------------------------"; }
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
preexec
}
trap 'preexec_invoke_exec' DEBUG
Veja mais detalhes emO bash tem um gancho que é executado antes de executar um comando?
Não acho que isso funcione em todas as versões do bash. No meu antigo servidor Ubuntu, executando o bash 3.2.39(1), help trap
diz
Se um SIGNAL_SPEC for DEBUG, ARG será executadodepoiscada comando simples.
Em outro servidor, executando o bash 4.1.2(1), diz
Se um SIGNAL_SPEC for DEBUG, ARG será executadoantescada comando simples.
é disso que precisamos. Portanto, certifique-se de que na sua versão do bash help trap
esteja escrito "antescada comando simples."
Responder2
Se estiver usando bash ou ksh para seu shell, você pode criar uma função em um de seus dotfiles (.profile, .bash_profile, etc) assim:
function hr {
echo "--------------------------------------------------------------------------------"
}
Em seguida, você pode anexá-lo aos comandos sempre que desejar esse separador usando &&
ou ;
como separadores de comando. Como em:
bash-[534]$ hr && ls
--------------------------------------------------------------------------------
ddtool_23.jnlp prtconf-pv
ou
bash-[536]$ hr ; ls -la
--------------------------------------------------------------------------------
total 36K
drwxr-xr-x 2 tim staff 4 2012-12-06 15:02 ./
drwxr-xr-x 46 tim staff 134 2013-04-30 14:59 ../
-rw------- 1 tim staff 2.7K 2012-12-06 15:00 ddtool_23.jnlp
-rw-r--r-- 1 tim staff 24K 2012-12-06 15:02 prtconf-pv
Eu faço isso. Tenho uma segunda função que também imprime um separador mais grosso.
function hr2 {
echo "================================================================================"
}
Costumo usar essas funções em scripts de shell para fornecer separação entre diferentes partes dos scripts, como hr2
entre tarefas principais e hr
entre itens em uma instrução de loop. Isso torna a leitura da saída do script muito mais fácil.