2012-05-23 10 views
5

मैं हाल ही में कुछ बैश स्क्रिप्टिंग के साथ काम कर रहा हूं और मैन पेजों को देख रहा हूं। जो मैंने एकत्र किया है, उससे $(()) मतलब expr और [ ] मतलब test है?

$(()) के लिए:

echo $(expr 5 + 3) 

[ ] के लिए::

:

test 'str' = 'str' 

के रूप में ही सफलता मान है

echo $((5 + 3)) 

रूप में एक ही उत्पादन है

क्या मुझे अपनी समझ सही मिली?

+2

आप [[]] पर भी विचार कर सकते हैं, जो आपको पैटर्न मिलान (अन्य चीजों के साथ) करने की अनुमति देता है। सिंगल [] बोर्न शेल सिंटैक्स है। – cdarke

+0

सिर के लिए धन्यवाद! मैंने यह सब कुछ आपके द्वारा प्रदान की गई सभी तरह की मदद से निकाला है! चीयर्स! – Vern

+0

'$ (()) 'एक झुकाव नहीं है, यह पॉज़िक्स-मूल मानकों-अनुरूप वाक्यविन्यास है। 'एक्सप्रप्र' 1 9 70 के युग की प्राचीन है। –

उत्तर

9

((...)) निर्माण बिश बिल्टिन let के बराबर है। let ज्यादातर वही सामान करता है जो expr करता है।

$((...)) निर्माण, शुरुआत में $ पर ध्यान दें, $(...) करता है जैसे अभिव्यक्ति के आउटपुट को प्रतिस्थापित करेगा।

[...] निर्माण वास्तव में test के लिए एक और नाम है।

अधिक जानकारी के लिए बैश सहायता पृष्ठ देखें।

  • help "("
  • help let
  • help [
  • help test

यह भी देखें:

+0

बहुत बहुत धन्यवाद! और लिंक के लिए भी! वे वास्तव में उपयोगी थे :) – Vern

6

आप सही कर रहे हैं के बारे में [ ] और test

बारे $(()), इस expr की एक अधिक विस्तृत प्रतिस्थापन है। आप expr के मुकाबले अधिक जटिल अभिव्यक्तियों की गणना कर सकते हैं।

संबंधित मुद्दे