8
コマンドラインからパラメータとしてIPアドレスを指定して次のコードを実行しようとしています。 「:行6:予期しないトークンの近くに構文エラー `エコー」 」予期しないトークン `echo 'の構文エラー
.
#!/bin/sh
echo $1;
declare -a values=$(ssh -q [email protected]$1 "ps -eo pcpu,pid,user | sort -r -k1 | less | grep jboss");
for value in ${values[*]} do
echo $value;
done
あなたは私は、このエラーを修正することができますしてください - しかし私はというエラーを取得していますか?
あなたの配列の代入には、 'declare -a values =($(ssh -q ...))'というカッコが足りないことに注意してください。リモートコマンドの出力が正しい配列要素のセットに解析されるかどうかは別の質問です。また、あなたのパイプラインの 'less'はせいぜい不要です。 – chepner
配列の要素を安全に反復するには、 '" {$ {values [@]} "'を引用符で囲みます。 http://stackoverflow.com/a/12316565/7552を参照してください。配列を作成するには、値をカッコで囲む必要があります: 'declare -a values =($(ssh ...))'。あなたが現在持っているのは、1つの要素を持つ配列です。その要素は、単語が空白で区切られた文字列です。 –
ありがとうございました:) – user2986175