Я пытаюсь сделать модульный скрипт. У меня есть несколько скриптов / команд, которые вызываются из одного скрипта.
Я хочу префикс вывода каждой отдельной команды.
нелогич-:
Мои файлы: allcommands.sh / command1.sh / command2.sh
выходы command1.sh
file exists
file moved
выходы command2.sh
file copied
file emptied
allcommands.sh запускает сценарии command1.sh и command2.sh
Я хочу префикс каждого вывода этих двух сценариев, как это:
[command1] file exists
[command1] file moved
[command2] file copied
[command2] file emptied
linux
command-line
bash
shell
bash-scripting
Иван Доков
источник
источник
sed "s/\^/command1 /"
sed
функциональность. Мне жаль.Ответы:
Я предполагаю, что вы делаете в своем allcommands.sh:
Просто соотнесите это с
источник
Минимальный пример
allcommands.sh
:С
command1.sh
иcommand2.sh
исполняемым и в том же каталоге,echo
содержащем нужные строки, это дает вывод оболочки:Быстрая
sed
поломкаs/
входит в режим регулярного выражения сопоставления и замены^/
означает «соответствовать началу каждой строки»${i%.sh}
происходит в контексте оболочки и означает «$i
но убери суффикс.sh
»['"${i%.sh}"'] /
сначала печатает a[
, затем выходит из цитируемого контекста, чтобы получить$i
переменную из оболочки, затем снова входит, чтобы закончить с]
пробелом и.источник