J'essaie de faire un script modulaire. J'ai plusieurs scripts / commandes qui sont appelés à partir d'un seul script.
Je veux préfixer la sortie de chaque commande distincte.
Examinez:
Mes fichiers sont allcommands.sh / command1.sh / command2.sh
sorties command1.sh
file exists
file moved
sorties command2.sh
file copied
file emptied
allcommands.sh exécute les scripts command1.sh et command2.sh
Je veux préfixer chaque sortie de ces deux scripts comme ceci:
[command1] file exists
[command1] file moved
[command2] file copied
[command2] file emptied
linux
command-line
bash
shell
bash-scripting
Ivan Dokov
la source
la source
sed "s/\^/command1 /"
sed
fonctionnalité. Je suis désolé.Réponses:
Je suppose que ce que vous faites dans votre allcommands.sh est:
Relacez-le simplement avec
la source
Un exemple minimal de
allcommands.sh
:Avec
command1.sh
etcommand2.sh
exécutable et dans le même répertoire justeecho
les chaînes voulues, cela donne la sortie du shell:rapide
sed
ventilations/
passe en mode "Regexp Pattern Match and Replace"^/
signifie "correspondre au début de chaque ligne"${i%.sh}
se produit dans le contexte du shell et signifie "$i
, mais supprimez le suffixe.sh
"['"${i%.sh}"'] /
imprime d'abord a[
, puis quitte le contexte cité pour saisir la$i
variable du shell, puis revient pour terminer avec les]
espaces et.la source