バックティック演算子を使用して Bash でコマンドを実行することにより、ファイルから 200 行を取得する PHP スクリプトがあります。コードは次のようになります。
$endline = `(shell execution that returns a number here)`;
$line = $endline - "200";
$lines = "sed -n '".$line.", ".$endline." p' log.txt";
echo $lines;
$file = `$lines`;
echo $file;
このコードは として返さ$lines
れますがsed -n '1800, 2000 p' log.txt
、$file
結果は返されません。sed -n '1800, 2000 p' log.txt
Bash ターミナルで直接使用すると、期待どおりの結果が得られます。
ここで何が間違っていますか?'
文字をエスケープする必要がありますか?
編集:シェルスクリプトは数字の後にスペースを追加したため、読み間違えました。