我試圖捕捉命令的輸出,并相應地拋出錯誤/成功。
$resultFromServer=[]。
SSH::run($command, function($line)
{
echo $line.PHP_EOL;
if($line!=null) {
array_push($resultFromServer, $line); // crash
}
});
dd($resultFromServer)。
檢查我的輸出
警告:Kubernetes組態檔是可組讀的。這是不安全的。位置。/root/.kube/config 警告:Kubernetes組態檔是世界可讀的。這是不安全的。位置:/root/.kube/config /root/.kube/config Error: open test.yaml: no such file or directory
[]
我試圖尋找這個字串 Error:和它右邊的任何東西,我將顯示在我的警告資訊中。
Error: open test.yaml: no such file or directory
我正在嘗試
。將每一行存盤到一個陣列中,并回圈檢查是否包含字串,但我甚至無法將其存盤到陣列中。
我一直得到一個崩潰--if--我取消了那一行的注釋
<我怎樣才能防止崩潰?我是否需要添加一些sleep()?
uj5u.com熱心網友回復:
因為SSH::run使用了一個閉包,$resultFromServer并不存在于子函式的范圍內。你需要用use關鍵字把它傳進去,同時把它作為一個參考傳進去,因為你要在內部修改它:
SSH:: run($command, function($line) use(& $resultFromServer)
{
echo $line.PHP_EOL;
if($line!=null) {
array_push($resultFromServer, $line); // crash
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/320594.html
標籤:

