php 执行命令参数加双引号,将双引号中的bash脚本参数传递给php cli脚本

博主在尝试通过Bash脚本传递参数到PHP脚本时遇到困难,已经尝试了多种解决方案但未成功。具体表现为参数没有按预期合并为一个。在Bash脚本中使用`$@`导致参数被分开。期望的结果是将多个参数作为一个整体传递。解决方案在于正确引用参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我试图将参数传递给bash脚本然后传递给php脚本,我已经完全看了30个链接,并尝试了十几个例子,而且无论出于什么原因我都无法让以下工作,我是非常沮丧,任何帮助都非常感激.

为了这个问题,让我说我有以下bash脚本(test.sh)

#!/usr/bin/env bash

/usr/bin/php test.php $@

我有以下PHP脚本(test.php)

print_r($argv);

我试图用以下参数执行bash脚本

./test.sh hello world "how are you"

以上结果如下

Array

(

[0] => test.php

[1] => hello

[2] => world

[3] => how

[4] => are

[5] => you

)

我正在寻找结果

Array

(

[0] => test.php

[1] => hello

[2] => world

[3] => how are you

)

非常感谢任何想法…我正在敲打桌子……

解决方法:

本来可以看看bash的手册页中的“QUOTING”块…(找到指向PARAMETERS块的指针)

/usr/bin/php test.php "$@"

标签:quoting,php,bash,command-line

来源: https://codeday.me/bug/20190816/1667391.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值