2016-04-22 53 views
2

我有一個控制器中的函數,我試圖通過一個變量形式PHP到SSH門面中的bash。通過變量形式PHP到bash在laravel 5.2

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裏面的變量UNIQKEY –

回答

1

您需要將echo key更改爲echo \$key,否則shell不會擴展關鍵變量。

此外,你可以擺脫關鍵變量的完全避免一些討厭的外殼通過只使用$UNIQKEY

有你在哪裏用putenv並期待環境變量通過SSH連接進行其它問題逃脫。我不認爲環境變化是這樣轉移的。相反,只需爲$ UNIQKEY設置一個PHP變量並將其插入到shell腳本中即可。

$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