[英]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
'$url'
"
來代替。 更新:
只是為了澄清 - 解析錯誤發生,因為$parse
被解釋為bash變量(空字符串)所以php命令錯誤地以=
開頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.