我使用PHP 在其命令行exec()中的Bash中启动进程$$.但是当使用PHP时,PHP本身似乎采用变量$$而不是让Bash在脚本中使用它.
PHP使用这个变量吗?假设如此,我如何为Bash脚本保留它?
示例:在Bash中exec('echo $$')执行echo 1538,而不是echo $$,因为PHP似乎已采用变量$$.
Php不会"接受"该$$值,因为它位于单引号字符串中.
它将bash转换为处理echo命令的bash进程的PID.
如果你想$通过echo命令逐字输出两个,你将不得不逃避它们:
exec('echo \\$\\$');
Run Code Online (Sandbox Code Playgroud)
跟进:
marc@panic:~$ bash
marc@panic:~$ echo $$
31285
marc@panic:~$ php -a
Interactive shell
php > echo exec('echo $$');
31339
php > echo exec('echo \\$\\$');
$$
Run Code Online (Sandbox Code Playgroud)
后续2:
marc@panic:~$ cat pid
#!/bin/bash
echo $$
marc@panic:~$ ./pid <--new shell started to execute script
31651
marc@panic:~$ . pid <---script executed within context of current shell
31550
marc@panic:~$ echo $$
31550
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
136 次 |
| 最近记录: |