2016-04-22 6 views
2

私は変数フォームPHPをSSHファサードでbashに渡そうとしています。変数を渡してlaravelでPHPをbashにします。012

putenv("UNIQKEY=test123"); 
SSH::into('production')->run([ 
        "if [ -d 'public_html' ]; then 
          cd public_html/ 
          touch laber.txt 
          key=$UNIQKEY 
          echo key >> laber.txt 
         fi" 
]); 

ここで、テキストファイルにキーを書き込もうとしています。私が何を得ているのかを書いているのは、ファイルの中の鍵です。期待されるテストではない123。 私は何が間違っていますか...

+1

「$ 1」はどこから来たのですか? – edhurtig

+0

@edhurtig質問を更新しました。 putenvの中の変数UNIKEKEYです –

答えて

1

echo keyecho \$keyに変更する必要があります。そうしないと、シェルはキー変数を展開しません。

また、あなたは完全に重要な変数を取り除くと、ちょうどあなたがSSH接続を介して運ぶために環境変数をputenvをを使用し、期待している他の問題があります$UNIQKEY

を使用してエスケープいくつかの厄介なシェルを回避することができます。私はenv varsがこのように転送されているとは思わない。代わりに、単に$ UNIQKEYのPHP変数を設定し、それをシェルスクリプトで補間します。

$UNIQKEY='test123'; 
SSH::into('production')->run([ 
        "if [ -d 'public_html' ]; then 
          cd public_html/ 
          touch laber.txt 
          echo $UNIQKEY >> laber.txt 
         fi" 
]); 
+0

Whoohooo ...うまくいきました。ありがとうございました.... –

+0

あなたは大歓迎です! – edhurtig

0

アップデート$UNIQKEYは、$を\$UNIQKEYにエスケープします。

関連する問題