2012-05-07 18 views
4

私はlinuxを初めて使っています。

export JAVA_HOME =$(readlink -f /usr/bin/java |sed "s:bin/java::") 

私は$()内のコマンドが何をするか知っている:私はbashコマンドを見ていると、プロンプトでJAVA_HOME環境変数を設定します(?でも右項があることです)。しかし、$()は何ですか?私がそれを含まなければ失敗した。

明らかにグーグル$()はうまく機能しません。

+1

http://tldp.org/LDP/abs/html/commandsub.html - コマンド置換と呼ばれています。 – Mat

答えて

3

readlinkコマンドの出力を取得するために使用します。たとえば:

[email protected]:~$ os=$(uname) 
[email protected]:~$ echo $os 
Linux 
+0

甘い!ありがとう!! –

+0

@downvoter私の答えに間違いはありませんか? – cnicutar

1

$(...)式は、コマンドを実行し、コマンドの出力を代入します。

echo $(date) 

だから( sedを通してそれを実行した後に)この例では、それは readlinkコマンドの出力を取っていると JAVA_HOMEに割り当てる:このような何かを試してみてください。

詳細については、bashのmanページを参照してください。

+0

説明は良いですが、例は "日付"と同じです。 – jordanm

4

$()は、コマンド置換と呼ばれます。これは、コマンドの出力をコマンド自体に置き換えます。

$(command) 

またはバッククォート

`command` 

との最初のバリアントが好ましいものである:あなたは、コマンド置換を行うことができる2つの方法が基本的に あります。

コマンド置換hereについて詳しく読むことができます。

関連する問題