Estoy tratando de hacer un script modular. Tengo varios scripts / comandos que se invocan desde un solo script.
Quiero prefijar la salida de cada comando por separado.
Examinar:
Mis archivos son allcommands.sh / command1.sh / command2.sh
salidas command1.sh
file exists
file moved
salidas command2.sh
file copied
file emptied
allcommands.sh ejecuta los scripts command1.sh y command2.sh
Quiero prefijar cada salida de estos dos scripts como este:
[command1] file exists
[command1] file moved
[command2] file copied
[command2] file emptied
linux
command-line
bash
shell
bash-scripting
Ivan Dokov
fuente
fuente
sed "s/\^/command1 /"
sed
funcionalidad. Lo siento.Respuestas:
Supongo que lo que está haciendo en allcommands.sh es:
Solo relaciona con
fuente
Un ejemplo mínimo de
allcommands.sh
:Con
command1.sh
ycommand2.sh
ejecutable y en el mismo directorio que soloecho
contiene las cadenas deseadas, esto da la salida del shell:sed
Desglose rápidos/
ingresa al modo "coincidencia y reemplazo de patrones regexp"^/
significa "coincidir con el comienzo de cada línea"${i%.sh}
sucede en el contexto de shell y significa "$i
, pero elimina el sufijo.sh
"['"${i%.sh}"'] /
al principio imprime a[
, luego sale del contexto citado para tomar la$i
variable del shell, luego vuelve a ingresar para terminar con]
y un espacio.fuente