Команда для выполнения другой команды при воспроизведении команды на STDOUT

Разработчик приложений более вероятно утверждает, что это находится в его собственных интересах для Вас покрыть его задницу путем работы вокруг непрофессионального задания, которое он сделал. Он, возможно, не дошел на самом деле признавать, что он записал что-то с огромной утечкой памяти, но не очень далеко за исключением него.

1
задан 9 June 2011 в 21:08
4 ответа

Можно легко записать маленький сценарий обертки, чтобы сделать это:

#!/bin/bash

# Start a subshell
(

# Print the command to standard out
echo "Command: $@"
echo

# Run the command as well
$@

# End the subshell, and pipe all standard output from it to pastebinit
) | pastebinit

Сохраните этот файл и chmod +x это, затем используйте сценарий, который Вы создали для выполнения команды и pastebinit.

Например:

./run_and_pastebin.sh ls -la /root
3
ответ дан 3 December 2019 в 17:19

Испытайте команду tee. Эта команда чтения от входа и затем пишет в стандартный вывод и файл.

Пример:
cat mytext.txt | tee pastebininit

Это отправит текст mytext.txt к стандарту и к команде pastebininit.

2
ответ дан 3 December 2019 в 17:19

Команда для выполнения команд оболочки sh (оболочка), можно попросить повторить команды к stderr с -x переключатель. Можно перенаправить stderr к stdout затем.

$ sh -x -c "echo my command" 2>&1
+ echo my command
my command

Побочный эффект этого решения состоит в том, что команда ('повторяют мою команду' в этом примере) stderr также отправляется в stdout. Это может быть или не может быть проблемой для Вас. Также '+' префикс добавляется к команде.

'-x' переключатель будет также работать на целые сценарии, повторяя каждую из выполняемых команд оболочки.

0
ответ дан 3 December 2019 в 17:19

Вы можете взглянуть на мой ответ на другой похожий вопрос:

https://serverfault.com/a/454535/146493

Я сделал там скрипт, который может показывать и запускать почти «любые "команда (т.е. остальная часть строки выполняется" как есть ", даже если она включает каналы, сложные параметры, кавычки и т. д. Это не подходит для многострочного как есть, но может быть сделано с помощью нескольких дополнений, таких как завершающая строка (чтобы знать, где заканчиваются команды, которые должны быть выполнены), и небольшой скрипт awk, который копирует строки из льняной ткани до завершения строка и поместите ее в файл tmp для получения. (подробности см. в сценарии)

0
ответ дан 3 December 2019 в 17:19

Теги

Похожие вопросы