एक कमांड निष्पादित करें और परिणामों को एक चर में डालें ... सभी को bash स्क्रिप्ट में [डुप्लिकेट]


1

मैं एक बैश स्क्रिप्ट पर काम कर रहा हूं जो एक नई फ़ाइल पर कॉपी करने से पहले एक कॉन्फ़िगरेशन फ़ाइल का बैकअप लेती है।

यहाँ मेरा स्निपेट कैसा दिखता है:

mv ~/myStuff.conf  ~/myStuff.conf.bak
cp ~/new/myStuff.conf ~/myStuff.conf

हर बार जब यह स्क्रिप्ट चलती है, तो मैं चाहूंगा कि फ़ाइल नाम में यूनिक्स टाइमस्टैम्प का बैकअप हो। मैंने यह कोशिश की

DATEVAR=date +%s
mv ~/myStuff.conf  ~/myStuff.conf.$DATEVAR.bak

लेकिन यह काम नहीं करता है, क्योंकि तिथि फ़ंक्शन निष्पादित नहीं करता है और बैश इसे एक स्ट्रिंग के रूप में देखता है, और परिणामस्वरूप फ़ाइल समाप्त हो रही है

myStuff.conf.date+%s.bak

किसी चर में दिनांक फ़ंक्शन के परिणाम प्राप्त करने के बारे में कोई विचार?


तकनीकी रूप से, यह एक का एक डुप्लिकेट है क्योंकि यह 3 साल पुराना है।
संगीत 2

जवाबों:



1
--[[z4us|binz--]]

export datevar=`date` # date embedded in backquotes

--[[z4us|binz--]]

echo $datevar

Lun 25 Gen 2016 15:56:14 CET

कोड के लिए सही प्रारूपण के अलावा, क्या चल रहा है, इसका स्पष्टीकरण इस उत्तर को बेहतर बनाता है।
नटगेव

खैर, Nattgew FYI करें: exportअगले चरण में उपयोग किए जाने वाले पर्यावरण में उपलब्ध चर को उपलब्ध कराता है। बैककॉस्ट एक बैश-कमांड को घेरता है जिसे निष्पादित किया जाएगा। मैंने सोचा कि सुपरयुसर इन मूल बातों को जानते हैं, लेकिन निश्चित रूप से हमें उन पाठकों के बारे में सोचना होगा जो किसी भी खोज इंजन के माध्यम से यहां पहुंचते हैं :-)
क्लेअस-जेड 4us-वी

आपके लिए bashकोई भी शेल पढ़ा जा सकता है और मैंने डिफ़ॉल्ट क्या है यह देखने के लिए मापदंडों के बिना कमांड का उपयोग किया है।
कालस-Z4us-V

1

यह कमांड के आउटपुट को पकड़े हुए चर का जवाब नहीं देता है। जिसका उत्तर पहले से ही है। अपने उदाहरण के बाकी स्क्रिप्ट के लिए के रूप में;

थोड़ा छोटा संस्करण:

mv ~/myStuff.conf  ~/myStuff.conf.$(date +%s)

आपको केवल एक चीज की जरूरत है या एक बार उपयोग करने के लिए कोई चर निर्धारित करने की आवश्यकता नहीं है। इसके अलावा, अधिक गोले के साथ संगत होने के लिए, आप इस सिंटैक्स का भी उपयोग कर सकते हैं:

mv ~/myStuff.conf  ~/myStuff.conf.`date +%s`

यह सिर्फ मुझे लगता है कि एक विस्तार के रूप में डेटास्टैम्प होने से फ़ाइल नाम में अतिरिक्त .bak की आवश्यकता समाप्त हो जाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.