如何在MacOS上的Rust中的新终端窗口中启动带有参数的应用程序?[关闭]

hlswsv35  于 2023-05-18  发布在  Mac
关注(0)|答案(1)|浏览(255)

**关闭。**这个问题是not about programming or software development。目前不接受答复。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
6天前关闭。
Improve this question
我无法打开一个新的终端(Terminal.app)窗口,该窗口使用MacOS上的Rust应用程序中的参数执行应用程序。
在终端中工作的命令在从Rust应用程序生成时不起作用。

在现有终端窗口中工作的功能:

命令:open -n -a Terminal "/opt/homebrew/bin/psql --help"

在现有终端窗口中不起作用的内容:

命令:open -n -a Terminal /opt/homebrew/bin/psql --args --help
问题:打开一个新窗口,但没有将--help传递给psql应用程序。

Rust应用程序中不起作用的内容:

从现有终端窗口手动执行时有效的解决方案在Rust应用程序中产生时不起作用:

Command::new("open")
.arg("-n")
.arg("-a")
.arg("Terminal")
.arg(r#""`/opt/homebrew/bin/psql --help`""#)
.status()
.unwrap();

错误:The file /Users/abc/Code/abc/ "/opt/homebrew/bin/psql --help" does not exist.
所需的解决方案不应使用applescript/osascript,因为这在最新的MacOS版本上不可用。

qf9go6mv

qf9go6mv1#

一个终端示例(test.sh):

#!/usr/bin/env bash

run-command(){
    local tmp=$(mktemp) 
    echo $'#!/bin/bash\n'"rm $tmp; cd ${PWD@Q}; clear; $@" > $tmp
    chmod 755 $tmp ; open -a Terminal $tmp
}       

run-command 'echo $BASH_VERSION; pwd; date; read -p Enter\ to\ quit'
# You can try your script as :
# run-command '/opt/homebrew/bin/psql --help; read -p Enter\ to\ quit'

您可以将上面的脚本改编为您的Rust版本。

相关问题