2013-05-01 4 views
21


-c "कुछ पाठ"/tmp/somepath
चर में
ग्रेप का परिणाम आवंटित करने के लिए कैसे तो मैं यह गूंज कर सकते हैं करने के लिए।
धन्यवाद!बैश स्क्रिप्ट असाइन ग्रेप गिनती चर

#!/bin/bash 
some_var = grep -c "some text" /tmp/somePath 
echo "var value is: ${some_var}" 

मैं भी करने की कोशिश की: some_var = 'ग्रेप -c \ "कुछ पाठ \"/tmp/somepath'

लेकिन मैं मिलती रहती है: नहीं मिला आदेश

धन्यवाद

उत्तर

49

कमांड के आउटपुट को असाइन करने के लिए, var=$(cmd) का उपयोग करें (shellcheck के रूप में स्वचालित रूप से आपको बताता है कि क्या आप वहां अपनी स्क्रिप्ट पेस्ट करते हैं)।

#!/bin/bash 
some_var=$(grep -c "some text" /tmp/somePath) 
echo "var value is: ${some_var}" 
+0

उत्तर के लिए धन्यवाद। लेकिन कोड के निष्पादन योग्य भाग में इनपुट चर का उपयोग कैसे करें? my_var = $ (grep "word" $ 1) - – Sonique

+0

@Sonique काम नहीं करता है यदि आप इसे सही तरीके से उपयोग करते हैं तो यह काम करेगा। –

3
some_var=$(grep -c "some text" /tmp/somePath) 
man bash से

:

Command substitution allows the output of a command to replace the com‐ 
    mand name. There are two forms: 

      $(command) 
    or 
      `command` 

    Bash performs the expansion by executing command and replacing the com‐ 
    mand substitution with the standard output of the command, with any 
    trailing newlines deleted. 
+3

परिवर्तनीय असाइनमेंट ** ** ** '' 'के आसपास रिक्त स्थान नहीं हो सकता है। – michaelb958

+1

@ michaelb958 आप सही हैं। समस्या को ध्यान में रखे जाने से पहले मेरी पोस्ट तय की गई थी। –

+0

Lev यह समस्या थी :) – user648026

15


मिले मुद्दा
इसका काम, इस काम करेगा:

some_var=$(command) 


हालांकि यह काम नहीं करेगा:

some_var = $(command) 


आपकी मदद के लिए धन्यवाद! मैं पहले सहायक उत्तर स्वीकार करूंगा।

+1

इसे पर्याप्त वोट नहीं दे सकता ... ये ऐसे उत्तर हैं जो मुझे SO के लिए आभारी बनाते हैं। – Charlie

+1

इस अंतर्दृष्टि के लिए बहुत बहुत धन्यवाद। चार्ली के साथ सहमत हैं। इसे पर्याप्त वोट नहीं दे सकता। –

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