如何在 macOS 上使用 dart 运行 shell 命令

emp*_*mpt 9 macos shell dart flutter

我使用 Dart 进程在 macOS 上制作 shell 命令。我使用 Flutter 制作了 macOS 应用程序。现在我想从应用程序运行 shell 命令。

运行应用程序的命令

/Users/lihongjun/shell/libs/zipalign -v 4 "/Users/lihongjun/Downloads/app-release.apk" "/Users/lihongjun/Documents/test/tempApk/app_aligned.apk" , 
Run Code Online (Sandbox Code Playgroud)

错误:

 sh: /Users/Shared/shell/libs/zipalign: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我搜索了很多,但无法解决这个问题,比如process_runner、shell、系统插件。

如果我在 mac 终端上执行 shell,它运行良好。

bool rsult = System.invoke('/Users/Shared/shell/libs/zipalign -v 4');
print('result:$rsult');
ProcessCmd cmd = ProcessCmd('java', ['-version'],runInShell: false,);
runCmd(cmd).then((value) {
  print(value.stdout.toString());
});
Run Code Online (Sandbox Code Playgroud)

现在我想在 Dart 代码中使用相同的内容来创建 shell 命令。

我怎样才能做到这一点?谢谢!

Adr*_*obs 6

这可能对您没有用,因为您正在使用 Flutter,但要回答标题中的问题(对于任何编写非 Flutter 应用程序的人来说),您应该看一下该dart:io库及其run方法:

https://api.dart.dev/stable/dart-io/Process/run.html

启动一个进程并以非交互方式运行它直至完成。进程运行可以使用指定的参数执行。