मैक टर्मिनल में X = x + 1


2

मैं x + 1 का मान कैसे निर्दिष्ट करूं? मैं इसे अन्य भाषाओं में कर सकता हूं, लेकिन इसे मार नहीं सकता।

जवाबों:


7

मैंने दो अलग-अलग तरीकों से परीक्षण किया और दोनों ने मेरे लिए काम किया:

x=$((x+1))

... या ...

x=$((++x))

3

यह काम करना चाहिए

let x=$x+1

कि 1 का रिटर्न मिलता है।
JShoe

let x=x+1 होना चाहिए let x=$x+1। यह संभावना है कि यह एक लौट रहा है।
Bandit

उफ़, डॉलर छूट गया
freethinker

1

यह काम कर सकता है:

x = `expr $x + 1`

नहीं। यह एक्स के लिए बोली में क्या असाइन करता है।
JShoe

1
@ जोशो: वे उद्धरण नहीं थे, वे थे गंभीर लहजे । अधिकांश कीबोर्ड पर, वे बाईं ओर स्थित होते हैं 1 कुंजी, कुंजी पर आप के साथ दबाएँ Shift एक टिल्ड में प्रवेश करने के लिए ( ~ )।
Patches

1
कंप्यूटिंग के संदर्भ में बैकटिक्स के रूप में भी जाना जाता है।
Sophie Alpert

एक और कारण बैकटिक्स का उपयोग नहीं करना है, बल्कि $() ;)
slhck

हालांकि एक वैध जवाब, expr पुराना स्कूल है। यह आपको खोल देता है, एक अनावश्यक प्रक्रिया है। @Bandit के उत्तर में सिंटैक्स अधिक आधुनिक है, और इन-शेल में किया गया है।
Rich Homolka

0

@ दस्यु का उत्तर ठीक है, लेकिन मैं इस अंतर को उजागर करना चाहता हूं कि "लेट" और (()) सामान्य शेल सिंटैक्स के लिए करें:

let x++

अभिव्यक्ति को "अंकगणितीय मूल्यांकन" के रूप में मानने के लिए bash (या ksh, या किसी POSIX शेल) का कारण बनता है जिसमें संदर्भित चर को "$" के साथ पूर्ववर्ती करने की आवश्यकता नहीं होती है। (()) का उपयोग करने का एक फायदा यह है कि अन्यथा-विशेष टोकन को उद्धृत या बच जाने की आवश्यकता नहीं है, उदा। गुणन के लिए "*" इस प्रकार है:

(( x = x * 2 ))

मुझे यह वाक्यविन्यास $ ()) से थोड़ा स्पष्ट है जो अभिव्यक्ति के आउटपुट का उपयोग करता है, उदा।

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