में एमवी के साथ फ़ाइल नाम में टाइमस्टैम्प जोड़ना ठीक है, मैं एक लिनक्स नौसिखिया हूं, और मुझे एक साधारण बैश स्क्रिप्ट के साथ कोई समस्या है।BASH
मेरे पास एक प्रोग्राम है जो चल रहा है, जबकि एक लॉग फ़ाइल में जोड़ता है। समय के साथ कि लॉग फ़ाइल बड़ी हो जाती है। मैं एक स्टार्टअप स्क्रिप्ट बनाना चाहता हूं जो प्रत्येक रन से पहले लॉग फ़ाइल का नाम बदलकर स्थानांतरित करेगा, प्रभावी रूप से प्रोग्राम के प्रत्येक भाग के लिए अलग-अलग लॉग फाइलें बनायेगा। यहाँ मैं अब तक क्या कर लिया है:
DATE=$(date +"%Y%m%d%H%M")
mv server.log logs/$DATE.log
echo program
जब चलाने के लिए, मैं इस देखें:
: command not found
program
जब मैं लॉग निर्देशिका के लिए सीडी और dir चलाने के लिए, मैं इस देखें:
201111211437\r.log\r
क्या चल रहा है? मुझे लगता है कि कुछ वाक्यविन्यास समस्या है जो मुझे याद आ रही है, लेकिन मुझे यह पता लगाना प्रतीत नहीं होता है।
अद्यतन: धन्यवाद shellter करने के लिए नीचे दिए गए टिप्पणी, मैं समस्या हो पाया है तथ्य यह है मैं संपादन कर रहा हूँ कि Notepad ++ में .sh फ़ाइल खिड़कियों में, और उसके बाद सर्वर से एफ़टीपी के माध्यम से भेजने के कारण, जहां मैं एसएसएच के माध्यम से फ़ाइल चलाता हूं। फ़ाइल पर dos2unix चलाने के बाद, यह काम करता है।
नया प्रश्न: फ़ाइल को फिर से भेजने पर हर बार इस फिक्स को निष्पादित करने से बचने के लिए, मैं फ़ाइल को पहले स्थान पर कैसे सहेज सकता हूं?
'\ r' carriage_return, अपने bash स्क्रिप्ट की जांच, शायद स्क्रिप्ट – ajreal
के अंदर शामिल किया जाता है वह कैरिज रिटर्न कहां से आ रहा है? मैं अनुमान लगा रहा हूं कि 'लॉग/$ DATE.log' के बारे में कुछ गलत है, लेकिन टाइपिंग 'echo लॉग/$ DATE.log' सही पथ आउटपुट करता है। – Cat5InTheCradle
मुझे कैसे पता चलेगा? कृपया ब्रांडेड बैश स्क्रिप्ट संलग्न करें, संभावना है कि अनजान व्हाइटस्पेस – ajreal