首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将值从PHP传递到bash时的ERROR_CACHE_MISS

将值从PHP传递到bash时的ERROR_CACHE_MISS
EN

Stack Overflow用户
提问于 2014-03-10 07:22:19
回答 1查看 174关注 0票数 0

我正在尝试将一些值从PHP文件传递到BASH脚本。我收到一个错误的CACHE_MISS响应。变量'coretown‘将值'Houston,TX’打洞。它必须采用bash脚本工作格式。

用于证明变量正确的测试结果

代码语言:javascript
复制
WorkString531cdf6b8b3451.99781853 OutString531cdf6b8b3451.99781853 Houston, TX

执行bash脚本。

代码语言:javascript
复制
$errorTrap=shell_exec("./Find-Town.sh $workPath $outPath $coreTown");

Bash脚本:

代码语言:javascript
复制
#!/bin/bash
set -x
InFile="./zipcode.txt"
"$Work1"="$1"
"$OutFile"="$2"
"$InString"="$3"

echo "$1";
echo "$2";
echo "$3";

由脚本中的'echo‘返回:

代码语言:javascript
复制
WorkString531cdf6b8b3451.99781853 OutString531cdf6b8b3451.99781853 Houston,

请注意,缺少状态(TX)。如果我把'echo "$4";‘放进去,它会显示'TX’。这些语言中是否有一种将'coreTown‘('Houston,TX')的内容作为数组处理?如果是,是哪一个?Amd我怎么解决它?我在谷歌上的搜索并没有解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2014-03-10 07:34:57

由于$coreTown包含一个空格,因此它在shell中被视为参数分隔符;您需要用引号将其引起来或转义空格。幸运的是,PHP有一个函数可以做到这一点:escapeshellarg

代码语言:javascript
复制
$workPathEsc = escapeshellarg($workPath);
$outPathEsc = escapeshellarg($outPath);
$coreTownEsc = escapeshellarg($coreTown);
$errorTap = shell_exec("./Find-Town.sh $workPathEsc $outPathEsc $coreTownEsc");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22289600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档