¿Es posible insertar un separador después del comando en un mensaje? Esto es un ejemplo:
~/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:
Específicamente quiero agregar la parte --------- después de emitir un comando para distinguir más fácilmente el comando del resultado.
Respuesta1
En zsh, puedes definir la función de enlace.preexec
para hacer eco de una cadena especificada antes de ejecutar cada comando.
En bash, puedes usar la DEBUG
trampa para configurar un gancho preejecutivo para hacer lo mismo.
Definirías una función preexec() algo como esto:
preexec () { echo "-------------------------------"; }
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
preexec
}
trap 'preexec_invoke_exec' DEBUG
Ver más detalles en¿Bash tiene un gancho que se ejecuta antes de ejecutar un comando?
Sin embargo, no creo que esto funcione en todas las versiones de bash. En mi antiguo servidor Ubuntu, ejecutando bash 3.2.39(1), help trap
dice
Si un SIGNAL_SPEC es DEBUG, se ejecuta ARGdespuéscada comando simple.
En otro servidor, ejecutando bash 4.1.2(1), dice
Si un SIGNAL_SPEC es DEBUG, se ejecuta ARGantescada comando simple.
que es lo que necesitamos. Así que asegúrese de que en su versión de bash help trap
diga "antescada comando simple."
Respuesta2
Si está utilizando bash o ksh para su shell, puede crear una función en uno de sus archivos de puntos (.profile, .bash_profile, etc.) de esta manera:
function hr {
echo "--------------------------------------------------------------------------------"
}
Luego, puede anteponerlo a los comandos cuando desee que el separador use &&
o ;
como separadores de comandos. Como en:
bash-[534]$ hr && ls
--------------------------------------------------------------------------------
ddtool_23.jnlp prtconf-pv
o
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
Hago esto. También tengo una segunda función que imprime un separador más grueso.
function hr2 {
echo "================================================================================"
}
A menudo uso estas funciones en scripts de shell para proporcionar separación entre diferentes partes de los scripts, como hr2
entre tareas principales y hr
entre elementos en una declaración de bucle. Hace que la lectura del resultado del script sea mucho más fácil.