从命令行打开终端并运行命令

Ale*_*lls 6 command-line bash gnome-terminal gnome-shell

我正在寻找一种从 Ubuntu 上的命令行启动终端会话的方法,如下所示:

#/usr/bin/env bash

terminal -c 'node server.js'
Run Code Online (Sandbox Code Playgroud)

如果有一些跨平台工具也适用于 MacOS,那就太好了。

所以我试过这个:

gnome-terminal -- 'echo "foo" | bash'
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

在此处输入图片说明

当我尝试这个时:

gnome-terminal --tab -- echo 'ts-node /home/oleg/codes/typeaware/doc-gen/lang/typescript/api/src/.test/express.test.ts' | bash
Run Code Online (Sandbox Code Playgroud)

什么也没发生,gnome 终端永远不会打开。

Ale*_*exP 7

您的初始命令gnome-terminal -- 'echo "foo" | bash'尝试运行一个名为字面意思的程序echo?"foo"?|?bash,而您的系统中很可能没有该程序。

正确的语法是gnome-terminal -- sh -c 'echo "foo" | bash',但它无济于事,除非您确实有一个名为foo. 您可以通过尝试看到语法是正确的

gnome-terminal -- sh -c 'echo "date; sleep 2" | bash'
Run Code Online (Sandbox Code Playgroud)

但这只是一种非常复杂的说法

gnome-terminal -- bash -c 'date; sleep 2'
Run Code Online (Sandbox Code Playgroud)

至于预期的命令,它可能应该是

gnome-terminal --tab -- bash -c 'ts-node /home/oleg/codes/typeaware/doc-gen/lang/typescript/api/src/.test/express.test.ts'
Run Code Online (Sandbox Code Playgroud)