如何从WHMCS API的CURL响应中提取指定行整数值供bash脚本使用
实现方案
你当前依赖行号提取数值的方式稳定性极差,只要API返回的字段数量、结构稍有调整,第25行的内容就会变化,优先推荐下面第一种方案:
方案1:修改PHP脚本直接输出目标值(最稳定)
你已经在PHP中把API返回的JSON解析为数组,直接取对应字段输出即可,完全不需要做行号匹配。
把PHP文件末尾的这两行:
// Dump array structure for inspection var_dump($jsonData);
替换为:
// 直接输出产品ID供bash脚本调用 echo $jsonData['product'][0]['id'];
之后在bash脚本中直接执行PHP文件获取值即可:
# 替换为你的PHP脚本实际路径 product_id=$(php /path/to/your/whmcs_api.php)
此时$product_id变量就是你需要的整数值,可直接在后续脚本逻辑中使用。
方案2:无需修改PHP,从现有输出提取(仅临时测试用,不推荐长期使用)
如果暂时不想改PHP代码,也可以直接用正则匹配你需要的int(xxx)格式,不需要绑定行号:
# 执行PHP脚本,直接提取id对应的int值 product_id=$(php /path/to/your/whmcs_api.php | grep -A1 '"id"' | grep -oP 'int\(\K\d+')
如果你坚持要按第25行提取,也可以用下面的命令,但是要注意结构变化后会失效:
product_id=$(php /path/to/your/whmcs_api.php | sed -n '25p' | grep -oP 'int\(\K\d+')
内容的提问来源于stack exchange,提问作者Kaushal Kumar
相关产品推荐
相关产品推荐

