$$
単一引用符で囲まれた文字列内にあるため、Php は値を「取得」しません。
これは、echo コマンドを処理する bash プロセスの PID に変換する bash です。
echo コマンドを使用して文字通り 2 つ出力したい場合は$
、それらをエスケープする必要があります。
exec('echo \\$\\$');
ファローアップ:
marc@panic:~$ bash
marc@panic:~$ echo $$
31285
marc@panic:~$ php -a
Interactive shell
php > echo exec('echo $$');
31339
php > echo exec('echo \\$\\$');
$$
フォローアップ 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