我正在研究現有的 php 專案,我完全是初學者。
我試圖理解這行代碼。
exec("/usr/local/sbin/clog '/var/log/filter.log' | grep -F '10' | /usr/bin/tail -r -n 350 | grep -ve 'CLOG.*\033' | grep 'filterlog:'" , $logarr )
我搜索了很多,我知道 exec 用于運行 unix command 。
但我不明白第一部分/usr/local/sbin/clog '/var/log/filter.log'
我也不明白| 這里的意思
我也不明白這部分/usr/bin/tail -r -n 350
有人可以解釋嗎?
uj5u.com熱心網友回復:
|是管道運算子。它將命令的輸出帶到其左側,并將其作為輸入提供給右側的命令。
/usr/local/sbin/clog是名為 的二進制檔案的路徑clog。它可以為日志檔案著色。二進制檔案以一個位置引數開始'/var/log/filter.log',它是日志檔案的路徑。
/usr/bin/tail是另一個名為 的二進制檔案tail,它顯示最后 N 行(在您的示例中為 350 行)。該-r開關可能表明這是在 BSD 作業系統下運行的?這是尾部檔案中有關-r開關的注釋:
GNU 'tail' 可以輸出任意數量的資料(一些其他版本的 'tail' 不能)。它也沒有“-r”選項(反向列印),因為反轉檔案實際上是與列印檔案末尾不同的作業;BSD 'tail'(帶有 '-r' 的那個)只能反轉最多與其緩沖區一樣大的檔案,通常為 32 KiB。一種更可靠、更通用的反轉檔案的方法是 GNU 'tac' 命令。
這兩個程式都是由它們的絕對路徑啟動的,大概是為了防止PATH.
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521130.html
