Bash 没有存储返回的 PHP 变量 [重复]
Posted
技术标签:
【中文标题】Bash 没有存储返回的 PHP 变量 [重复]【英文标题】:Bash is not storing a returned PHP variable [duplicate] 【发布时间】:2019-09-02 09:17:47 【问题描述】:我有一个 bash 脚本,我想将一个变量传递给 php 脚本,PHP 脚本将执行并返回一些应该存储在 bash 变量中的内容。我的 bash 脚本代码是这样的
ip="192.168.1.4"
version=`/usr/bin/php checkVer.php $ip`
所以在这两行代码中,我想将 $ip 作为变量传递给 checkVer.php 脚本,然后该脚本将执行一些代码,返回一些内容,并且该返回将存储在 bash 变量版本中。但是, version= 仅返回 $ip 变量。这是为什么呢?
这是 PHP 脚本
$ip = $argv[1];
if ($ip == "192.168.1.4")
return true;
但是,bash 变量 version
不存储 true
它是存储 IP 地址
【问题讨论】:
你能告诉我们bash
代码吗?
bash 代码是第一个代码段
命令替换返回您的php
脚本打印的任何内容, 而不是它return
s 的内容。 Bash 没有“真”或“假”,只有字符串变量(尽管返回码 0 表示流控制语句 if
、while
和 until
成功,所以你可以说 @987654333 @
还有切线***.com/questions/17336915/…和***.com/questions/15013481/…
我现在可以正常工作了,但是 bash 脚本正在打印带有多个新行的变量。这是为什么呢?
【参考方案1】:
在 PHP 中使用 echo
代替 return
:
<?php
$ip = $argv[1];
if($ip == "192.168.1.4")
echo 1;
?>
重击:
ip="192.168.1.4"
version=`/usr/bin/php -f checkVer.php $ip`
echo $version
结果:
1
【讨论】:
这可行,但由于某种原因,它在变量的字符之前返回一个空格。因此,如果我的版本等于 0,它将在 0 之前放置一个空格。如果我使用 echo "$version" | xargs 然后它将摆脱空间,但我需要以某种方式将其存储在变量中而不是 echo 中。我想在没有空间的情况下存储变量。这可能吗?以上是关于Bash 没有存储返回的 PHP 变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章