如何从DART脚本中的键盘重定向标准输入?

ThinkDigital

在测试我编写的Dart预提交git钩子脚本时,使用提示时,我可以将stdin输入作为输入。但是,当在提交时通过git运行它时,它会通过输入调用运行,而不会提示用户输入。显然,某些语言有一种解决方法,可以通过Callingexec < /dev/tty将标准输入分配给键盘,但是Dart呢?

julemand101

您可以直接从/ dev / tty作为文件读取,而不是重定向stdin:

import 'dart:convert';
import 'dart:io';

void main() async {
  print('What is your name: ');

  final name = await getUserInput();

  print('Hello! Your name is $name');
}

Future<String> getUserInput() async =>
    File(Platform.isWindows ? r'conIN$' : '/dev/tty')
        .openRead()
        .transform(utf8.decoder)
        .transform(const LineSplitter())
        .first;

我找到了conIN $的以下文档,该文档指示这始终指向Windows上的控制台输入:https ://docs.microsoft.com/zh-cn/windows/console/console-handles

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 bash 脚本中重定向标准输入和标准输出

在bash脚本中动态重定向标准输入

重定向任务中的流程标准输入

如何从终端标准输入重定向到处理标准输入

将标准输入(读取主机)重定向到Powershell脚本

将脚本标准输入重定向到后台文件

如何将标准输入重定向到bash中的文件

如何从DOS中的标准输入读取字符以使重定向有效?

重定向标准输入和标准输出?

检查bash脚本中是否有标准输出重定向

如何重定向“ while”指令在文件上的标准输入?

如何注意到标准输入重定向到目录

从文件重定向输入,但也显示在标准输出中?

脚本中的重定向

如何检查bash输入是否被重定向到PHP脚本?

将标准输入重定向到标准输入

在键盘上输入单词并被重定向?

将标准输入重定向到文件

两次重定向标准输入?

通过GUI重定向标准输入

如何使用boost.process重定向标准输入和标准输出

如何在 dart 中输入标准输入并中断空格?

如果标准输入重定向,su为什么要求输入密码?如何避免这种情况?

如何将命令的标准输出和标准输入都重定向到一行中的文本文件?

重定向标准输出和标准输入-Java

将标准输入重定向到标准输出

如果它的标准输入已被重定向,是否可以获取bash脚本以接受来自终端的输入?

如何在Dart / Flutter中获取重定向URL?

输入重定向如何工作?