鍍金池/ 問答/PHP/ php在命令行下的輸出被sh處理的問題

php在命令行下的輸出被sh處理的問題

用php寫了一個cli的小程序,寫的挺好,突發(fā)奇想準(zhǔn)備給他做個啟動畫面(字符畫),但是遇到了輸出的字符畫被sh所處理的的問題!!!!
如下圖
圖片描述

在09.40.06輸出的字符串就不會被sh 所處理了!!!很神奇!為什么?

代碼截圖如下
圖片描述
圖片描述
圖片描述

回答
編輯回答
安若晴

多看文檔
`是命令執(zhí)行符

2017年10月26日 23:49
編輯回答
淚染裳

這是 $logo 變量使用 `` 符號賦值多行字符串引起的. 在 bash 中, 被 `` 符號包起來的語句會被當(dāng)做命令來執(zhí)行. 而你最終是會輸出到 shell 的, 當(dāng)然得遵循這條規(guī)則.
解決辦法有三:

  1. 不使用 `` 的方式給 $logo 變量賦值. 當(dāng)然這樣太麻煩了...
  2. 把打印用的語句由 echo 改為 print.
  3. 在 $logo 變量賦值時(shí), 首尾添加內(nèi)容, 使之成為可用的 bash 命令. 如下:
<?php
$logo = `
cat << EOF
1111
22222
33333333
EOF
`;
2017年7月2日 08:36