2016-06-21 12 views
-1

私が書かれているbashのコードを一致させるために探してますが、変数BASH予期しないEOF jvmmonから値を読み取るために

コード

#!/usr/bin/env bash 
str=$1 
val=$2 
jpid=`pgrep java` 
echo $jpid 
min_heap=`/usr/local/opt/bin/jvmmon -pid `$jpid` -c "print vm information" | grep -Eo '\-`$str`[^ ]+'` 

出力から値を評価しようとしたときに、私はエラーで終わるいながら:

./check_jvm_param: command substitution: line 6: unexpected EOF while looking for matching `'' 
./check_jvm_param: command substitution: line 7: syntax error: unexpected end of file 
./check_jvm_param: command substitution: line 6: unexpected EOF while looking for matching `'' 
./check_jvm_param: command substitution: line 7: syntax error: unexpected end of file 

ありがとう助けてください。

+2

なぜあなたは '$ jpid'をエスケープしていますか? http://www.shellcheck.net/にコードを貼り付け、エラーのプレビューを確認してください。 – fedorqui

+2

あなたはエラーを読み取っていますか? – 123

+0

ああ、間違った引用符。 '$ jpid'を引用符で囲む必要はありませんが、' $ str'はやや難解です。ヒント:クォート内のシェル展開を無効にしない種類の引用符を使用してください。 –

答えて

2

バックテックを使用してコマンドの置換をネストしようとしているようです。コマンド置換には常に$(,)演算子を使用し、二重引用符(")で変数を引用する必要があります。 shellcheckでスクリプトを実行することは、常に最初のステップである必要があります。

関連する問題