Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在当前进程中使用dart.io来生成shell脚本?_Bash_Dart_Dart Io - Fatal编程技术网

Bash 如何在当前进程中使用dart.io来生成shell脚本?

Bash 如何在当前进程中使用dart.io来生成shell脚本?,bash,dart,dart-io,Bash,Dart,Dart Io,Process.run(以及所有变体)抱怨使用了“.”和“source”命令。是否有一种内置的方法可以通过run方法实现这一点,或者是否有一个特定的可执行文件可以尝试调用,它将模仿bash的源命令?所有这些命令都有一个runInShell参数。如果这不能解决问题,请使用shell-c.xxx“ 如果Process.run('.somescript.sh,runInShell:true)

Process.run
(以及所有变体)抱怨使用了“.”和“source”命令。是否有一种内置的方法可以通过run方法实现这一点,或者是否有一个特定的可执行文件可以尝试调用,它将模仿bash的源命令?

所有这些命令都有一个
runInShell
参数。如果这不能解决问题,请使用
shell-c.xxx“

如果
Process.run('.somescript.sh,runInShell:true)Process.run('someexecutable')您什么也得不到,因为当第一次调用结束时,所创建的环境也随之消亡。
我想你想要的是

Process.run('. somescript.sh && someexecutable', runInShell: true);

我不知道dart,但在简要阅读了文档之后,我很清楚,
Process.run
在非shell上下文中直接调用该流程。如果您想
source
,您需要做的是调用shell解释器,例如bash,因此您需要运行
bash-c'blah blah'
,或者将
source
和其他命令放在一个被屏蔽的可执行脚本中,然后运行该脚本。
source
(又称
)命令在当前shell中运行一个脚本。由于dart不是shell,因此该命令在该上下文中没有多大意义。你到底想做什么?@GordonDavisson他可能只是想导出一些环境变量。我需要的源代码脚本确实导出了一些环境变量,特别是,在$PATH中添加了一些新程序。我的目标是能够通过Dart应用程序以编程方式获取此脚本的源代码,这样我就可以在添加到$PATH的新程序上调用Process.run()。从文档中,runInShell默认为false-因此不将其设置为true,而通过Process.run()设置env变量应该添加到我的应用程序正在运行的当前环境中,对吗?另外,您可以编辑您的答案,以包括对Process.run()的调用作为示例吗?@Crunchex:不,子进程(Process.run创建的AIUI——在其任何模式下)无法在父进程中设置环境变量。