一键:打开终端,运行命令,继续使用终端

Dou*_*ock 8 command-line bash konsole

我需要一个执行以下操作的 bash 脚本:

  1. 打开一个新终端
  2. 切换到特定目录
  3. 在该目录中运行命令
  4. 保持终端打开以供进一步使用

具体我想:

  1. 打开konsole终端
  2. 改成 /my/work/dir/
  3. 里面/my/work/dir/,运行source bin/activate
  4. 之后我需要在里面运行更多的命令/my/work/dir/,例如ls

一个非常相似的问题给出了脚本的以下答案(适应我的要求):

#!/usr/bin/env bash
konsole --noclose --workdir /my/work/dir/ -e 'bash -c 'source bin/activate'' 
Run Code Online (Sandbox Code Playgroud)

这确实在里面打开了一个新终端/my/work/dir/,但终端不是交互式的。这

user@userMachine: /my/work/dir$

缺少允许我运行更多命令并且我键入的任何内容(例如pwd)不返回任何内容,只是新行。

pa4*_*080 7

您需要指定终端执行命令后要执行的操作source bin/activate。您需要一个活动的 bash 会话,因此您需要运行bash. 此外,还有一个带有引号的混乱。所以脚本可能是:

#!/usr/bin/env bash
konsole --noclose --workdir /my/work/dir/ -e 'bash -c "source bin/activate; exec bash"' &
Run Code Online (Sandbox Code Playgroud)
  • &最后添加以保持终端可用,以防您从其他终端窗口执行该脚本。

  • exec命令可以省略,您只能使用bash.

以下是类似问题的几个答案,致力于gnome-terminal


归档时间:

查看次数:

4400 次

最近记录:

5 年,7 月 前