如何在当前 CLI 上下文中从 PHP 脚本执行命令?
How to action a command from a PHP script in the current CLI context?
假设我有一个 PHP 打印时间的脚本。
echo time() . "\r\n";
在 CLI 中多次执行此脚本将如下所示:
curiosity:bin gajus$ php -r 'echo time() . "\r\n";'
1434453316
curiosity:bin gajus$ php -r 'echo time() . "\r\n";'
1434453318
curiosity:bin gajus$ php -r 'echo time() . "\r\n";'
1434453319
curiosity:bin gajus$
我希望我的 PHP 脚本打印 printf '\e\]50;ClearScrollback\a'
序列以清除 iTerm2 回滚。我尝试了 php -r 'echo "\e\]50;ClearScrollback\a" .time() . "\r\n";'
的变体,但只是将字符串吐到 CLI 输出:
curiosity:bin gajus$ php -r 'echo "\e\]50;ClearScrollback\a" .time() . "\r\n";'
]50;ClearScrollback\a1434453543
curiosity:bin gajus$
有没有办法从 PHP 脚本中触发 CLI ClearScrollback
?
转义码 ^[]50;ClearScrollback^G
本身在 Proprietary Escape Codes iTerm2 文档中有描述。
A quick comment on notation: in this document, ^[ means "Escape" (hex code 0x1b) and ^G means "bel" (hex code 0x07).
您可以使用PHP chr()函数,例如
php -r 'echo chr(27) . "]50;ClearScrollback" . chr(7);'
chr
函数returns一个特定的ascii字符。在此示例中,我使用 ASCII control characters "escape" (27) 和 "bell" (7)。描述ascii控制字符的跨平台安全方法。
假设我有一个 PHP 打印时间的脚本。
echo time() . "\r\n";
在 CLI 中多次执行此脚本将如下所示:
curiosity:bin gajus$ php -r 'echo time() . "\r\n";'
1434453316
curiosity:bin gajus$ php -r 'echo time() . "\r\n";'
1434453318
curiosity:bin gajus$ php -r 'echo time() . "\r\n";'
1434453319
curiosity:bin gajus$
我希望我的 PHP 脚本打印 printf '\e\]50;ClearScrollback\a'
序列以清除 iTerm2 回滚。我尝试了 php -r 'echo "\e\]50;ClearScrollback\a" .time() . "\r\n";'
的变体,但只是将字符串吐到 CLI 输出:
curiosity:bin gajus$ php -r 'echo "\e\]50;ClearScrollback\a" .time() . "\r\n";'
]50;ClearScrollback\a1434453543
curiosity:bin gajus$
有没有办法从 PHP 脚本中触发 CLI ClearScrollback
?
转义码 ^[]50;ClearScrollback^G
本身在 Proprietary Escape Codes iTerm2 文档中有描述。
A quick comment on notation: in this document, ^[ means "Escape" (hex code 0x1b) and ^G means "bel" (hex code 0x07).
您可以使用PHP chr()函数,例如
php -r 'echo chr(27) . "]50;ClearScrollback" . chr(7);'
chr
函数returns一个特定的ascii字符。在此示例中,我使用 ASCII control characters "escape" (27) 和 "bell" (7)。描述ascii控制字符的跨平台安全方法。