我尝试在 PHP-CLI 中使用预填充的 readline 函数。示例:向用户询问一个特殊的文件夹,但可以编辑用户
PROMPT> /var/log
可以点击返回来验证 /var/log 条目或在 PROMPT> 之后编辑它
我尝试输入 /var/log in readline ("PROMPT> /var/log");
,但它不可编辑,因为它是一个提示。我想让 readline 接受使用键盘箭头来编辑数据。
你有什么主意吗 ?
这对于我所知道的任何外壳都是不可能的。这通常通过显示默认值来解决,如果用户没有输入任何内容,程序将继续使用默认值。考虑以下示例aptitude upgrade
:
Do you want to continue? [Y/n/?]
用户知道可用的选项,并且Y
是大写的,因此是默认值。当然,您可以扩展它以使其对您的用户更加清晰。也许是这样的:
Do you want to continue? [y/n] [default is y]
有无穷无尽的方法可以解决这个问题。
/var/log
您的程序在输出到提示符之前肯定在做某事,所以只需询问用户。我强烈推荐Symfony2 Console,它可以让这样的任务像骑自行车一样简单。