簡體   English   中英

如何在bash中執行php腳本?

[英]How can execute php scripts in bash?

我需要在shell腳本中解析uri。 所以,我嘗試在bash中使用php,如下所示。

#!/bin/sh

uri="http://www.google.com?key=value
key="host"

value=$(php -r "$parse = parse_url('$uri'); echo $parse['$key']")

它顯示以下錯誤。

PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1

有些身體可以幫助如何在bash中使用嵌入式php?

一種廉價的調試方法是使用echo來查看你傳遞給php的內容:

echo "$parse = parse_url('$uri'); echo $parse['$key']"

節目

 = parse_url('http://www.google.com?key=value'); echo ['host']

你已經使用$uri來表示“shell變量uri的值”,所以$parse也被認為是一個shell變量並擴展到它的值(未設置,沒有)也就不足為奇了。

如果要在雙引號字符串中使用文字美元符號,請使用\\$

value=$(php -r "\$parse = parse_url('$uri'); echo \$parse['$key']")

你可以輕松使用它,但你必須小心,因為在bash中逃脫。

我建議使用單引號 (您不需要轉義任何內容)並在想要執行特殊操作時退出引號。 你的例子:

php -r '$parse=parse_url("'$url'"); echo $parse["'$part'"];'

注意

  • 你不需要轉義$parse
  • 插入bash變量時需要退出單引號: '$url'
  • 你不能在單引號中使用單引號! 不要使用雙引號"來代替。

更新:

只是為了澄清 - 解析錯誤發生,因為$parse被解釋為bash變量(空字符串)所以php命令錯誤地以=開頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM