2013-05-01 4 views
21


にgrepの数を割り当てます。
ありがとうございます! some_var = 'はgrep -c \ "一部のテキスト\" を/ tmp/somePath'bashスクリプトは、私はそれをエコーすることができますので、変数に <br>はgrep -c「いくつかのテキスト」を/ tmp/somePath <br>の結果を割り当てるためにどのように変数

しかし、私は入れません::

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

私も試したが見つからないコマンドを

おかげ

答えて

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

この洞察に感謝します。 Charlieと同意する。これを十分に投票することはできません。 –

関連する問題