2016-07-29 8 views
0

, пожалуйста, несите меня, если моя терминология или синтаксис меньше звездного (все еще учащегося). В настоящее время у меня есть простой скрипт bash, который проверяет аргументы команды и выводит имена файлов с соответствующим текстом. Эта часть моего скрипта работает корректно с помощью команды grep и отправляется в xargs для правильного форматирования.BASH save stdout в новый файл после выполнения

При запуске скрипта я прохожу через простой цикл, чтобы проверить, является ли значение равным null, а затем перейдите к запуску моей переменной/search, если нет.

Мой вопрос: возможно ли, чтобы этот скрипт выводился через stdout И также сохранял новый файл каждый раз, когда он запускается с пользовательским вводом и датой/временем? (но не перезаписывать) EX: report-bob-0729161500.rpt

Я видел такие же предложения, как использовать tee с помощью команды, но я пытался заставить ее работать внутри скрипта. Аналогично, в другом предложении было использовано exec>> (tee -i logfile.txt), но я не уверен, как правильно его форматировать, чтобы каждый раз, когда скрипт исполнялся, включал дату/время и входной файл $ 1 в новые файлы.

Любые помощь или рекомендуемые ресурсы?

спасибо.

SEARCH=`[search_variable]`                 

    if [ -z "$SEARCH" ]                    
    then                        
    echo "$1 not found."                    
    else                        
    echo -e "REPORT LISTING\n\n"                 
    echo "$SEARCH"                      
    fi 

РЕДАКТИРОВАТЬ: Я попытался просто направить сообщения эха на команду tee, которая работает. Тем не менее, мне все еще интересно, есть ли у кого-то другие предложения для выполнения этой же задачи с помощью альтернативных методов. Спасибо.

С эхо заявлений поступает в тройник (? С помощью добавления, где это уместно)

SEARCH=`[search_variable]`                 
    DATE=`date +"%m%d%y%k%M"`   

    if [ -z "$SEARCH" ]                    
    then                        
    echo "$1 not found."                    
    else                        
    echo -e "REPORT LISTING\n\n" | tee tps-list-$1-$DATE.rpt                
    echo "$SEARCH" | tee tps-list-$1-$DATE.rpt                      
    fi 

ответ

0

Если вы хотите сделать это в сценарий, то почему не просто написать как стандартный вывод и файл , Может быть, немного больше написания, но он дает полный контроль.

Leon

+0

Честно говоря, я не уверен, что лучший способ приблизиться к этому, таким образом, почему я включал два предложения с тройником. Я знаю, что хочу иметь его внутри скрипта, но перенаправление каждой строки кажется излишним. Я надеялся на некоторые предложения или ресурсы, которые могли бы пролить некоторый свет на использование тэ в скрипте или какую-то другую команду, о которой я не знаю, что создаст новые файлы (не добавляя один файл журнала). – NewBashUser226