बैश प्रिंट लॉग इन करने के लिए जाता है लेकिन आउटपुट = नहीं


0

इस स्निपेट की पहली पंक्ति लॉगफाइल में जाती है, लेकिन दूसरी नहीं। मुझे दूसरे को निष्पादित करने और लॉग इन करने की आवश्यकता है।

#!/bin/bash
printf '%s %s (%s) running...\n' 2>&1 | tee -a $logfile
output=$(restic -r ${backupdir} snapshots ) 2>&1 | tee -a $logfile

मैं आउटपुट = लाइन को कैसे लॉग कर सकता हूं?


दूसरी पंक्ति मूल रूप से लॉग फ़ाइल में असाइनमेंट स्टेटमेंट के आउटपुट को जोड़ने की कोशिश करती है। जैसा कि इस कथन में किसी भी आउटपुट का उत्पादन नहीं होता है, :-) जोड़ने के लिए कुछ भी नहीं है
nohillside

जवाबों:


2

दूसरी पंक्ति में, कोई आउटपुट नहीं होना चाहिए! आप का परिणाम बता रहे हैं restic -r ${backupdir} snapshots सेवा मेरे output, और वह किसी भी आउटपुट का उत्पादन नहीं करेगा, या तो stdout या इसमें stderr (इसके बराबर है output="Value stored for later" - जब यह कमांड निष्पादित होता है, कोई आउटपुट नहीं है)।

कुछ ऐसा आजमाएं ...

output=$(restic -r ${backupdir} snapshots )
echo $output | tee -a $logfile

या आप इसे केवल करके सरल बना सकते हैं ...

restic -r ${backupdir} snapshots 2>&1 | tee -a $logfile
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.