2016-10-21 5 views
0

Я реализующего логику в сценарии оболочкиПеренаправление мое эхо-вывод в файл

#!/bin/bash 
LOGFILE=">> /tmp/testlog.txt" 

echo "My log output" $LOGOUTPUT 

Выход: Мой выход журнала >> /tmp/testlog.txt

Есть ли способ, чтобы перенаправить мой echo output to /tmp/testlog.txt вместо вышеприведенной строки, отображаемой на консоли.

Примечание: Пожалуйста, не предложить ниже решения

echo "My log ouptut" >> /tmp/testlog.txt 

Любое другое решение, кроме этого?

+0

, что случилось это предложение? echo "My log ouptut" >> /tmp/testlog.txt – Vahid

+0

'LOGFILE =" >> /tmp/testlog.txt "' создает строку. Это единое целое. Вы не можете использовать это так, как вы пытаетесь. Ваш запрос 'echo' получает ваши аргументы двумя аргументами. Это не то, что вы хотите. – arkascha

+0

В этом предложении нет ничего плохого. У меня есть специальное требование, когда мне нужно переключить вывод команды echo на последовательный или на файл. Я мог бы это сделать, изменив значение переменной LOGFILE. Так найти альтернативу. – Murali

ответ

0

Попробуйте использовать символы перенаправления вне вашей переменной LOGFILE.

#!/bin/bash 
LOGFILE=/tmp/testlog.txt 

echo "My log output" >> $LOGFILE 
0

Использование exec > >(tee -i $logfile)

Я использую его таким образом, как правило:

function start_logging() { 
    logfile="$1" 
    touch $logfile 
    exec > >(tee -i $logfile) 
    exec 2>&1 #also redirect stderr 
    return 0 
} 

Вызов этой функции придав ему /tmp/test.log, например, он будет записывать все ваши вывод программы в файл и предотвратить его отображение на выходах std и err.

EDIT: Перенаправление ТОЛЬКО файл: >> "filename.t 2>&1

+0

Это не решает мое требование. Мне нужно, чтобы весь вывод эха перенаправлялся на stdout или в файл журнала на основе значения, присвоенного LOGOUTPUT varaiable – Murali

0
function logme() 
{ 
    #Send logs to logfile 
    logfile="/tmp/logfile.txt" 

    #Send logs to stdout 
    #logfile="/dev/stdout" 

    cat >> $logfile 
} 

echo "Hello" | logme 
echo "Friend" | logme 
Смежные вопросы