बैश स्क्रिप्ट में ((संख्या # घंटा)) का क्या अर्थ है?


18

मेरे पास एक bash स्क्रिप्ट है जिसमें निम्नलिखित 2 लाइनें हैं:

Hour=$(date +"%H")
Hour=$((10#$Hour))

लाइन 2 क्या करता है?

जवाबों:


24

10#यह बताता है आधार 10 का उपयोग कर संख्या बढ़ाने के लिए:

एक अग्रणी 0 वाले स्थिरांक को अष्टक संख्या के रूप में व्याख्या की जाती है। एक प्रमुख '0x' या '0X' हेक्साडेसिमल को दर्शाता है। अन्यथा, संख्याएं फार्म [आधार #] एन लेती हैं, जहां वैकल्पिक आधार 2 और 64 के बीच एक दशमलव संख्या है जो अंकगणितीय आधार का प्रतिनिधित्व करता है, और n उस आधार में एक संख्या है। यदि आधार # छोड़ा गया है, तो आधार 10 का उपयोग किया जाता है। N निर्दिष्ट करते समय, 9 से अधिक अंकों को निचले क्रम के अक्षरों, अपरकेस अक्षरों, '@' और '_' द्वारा दर्शाया जाता है। यदि आधार 36 से कम या इसके बराबर है, तो 10 और 35 के बीच संख्याओं का प्रतिनिधित्व करने के लिए लोअरकेस और अपरकेस अक्षरों का परस्पर उपयोग किया जा सकता है।

उदाहरण:

आधार 16:

$ echo $((16#A))
10

आधार 8:

$ echo $((8#12))
10

आधार 2:

$ echo $((2#1010))
10

जैसा कि स्टीलड्राइवर बताते हैं कि यह संभवतया दिनांक कमांड से किसी भी संभावित अग्रणी शून्य को संभालने के लिए किया जा रहा है, लेकिन जीएनयू तिथि के हाल के संस्करणों के साथ इसका उपयोग करना आसान हो सकता है: date +%-H


2
इस विशेष मामले में, यह उल्लेखनीय है कि (जीएनयू के हाल के संस्करणों में कम से कम date) अग्रणी शून्य को एक -+%-H
प्रिंटफ


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