1

これに関する複数のスレッドを確認しましたが、まだ問題があります。実行しようとしているコマンドは次のとおりです。コマンドなしで$()問題なくコンソールに目的の出力を出力します。後で使用するためにその値を変数に入れることができないようです。

MODEL3= $(/usr/sbin/getSystemId | grep "Product Name" | awk '{print $4}')

しかし

MODEL3= /usr/sbin/getSystemId | grep "Product Name" | awk '{print $4}'  

-コンソールに出力します。本当にありがとう!

4

2 に答える 2

5

それは正しいです:

MODEL3=$(/usr/sbin/getSystemId | grep "Product Name" | awk '{print $4}')

しかし、あなたはなしで同じことを書くことができますgrep:

MODEL3=$(/usr/sbin/getSystemId | awk '/Product Name/{print $4}')

これで変数に結果が得られ、次のMODEL3ようにさらに使用できます$MODEL3

echo "$MODEL3"
于 2012-08-02T14:57:27.683 に答える
3

変数の代入で使用できないスペース

変数の代入では、変数名、代入演算子、および値の間にスペースを入れてはなりません。あなたの現在の行は次のように言っています:

MODEL3= $(/usr/sbin/getSystemId | grep "Product Name" | awk '{print $4}')

これは実際には、「MODEL3 が設定されているが空の環境変数で次の式を実行する」ことを意味します。

あなたが望むのは実際の割り当てです:

MODEL3=$(/usr/sbin/getSystemId | grep "Product Name" | awk '{print $4}')
于 2012-08-02T15:01:04.287 に答える