【问题标题】:Running couple of commads in new terminal tabs in zsh在 zsh 的新终端选项卡中运行几个命令
【发布时间】:2021-10-28 06:56:04
【问题描述】:

我有一个场景,我需要创建一个运行几个命令的脚本文件。

  • 连续运行的node index.js
  • ./gradlew run 也连续运行
  • 一些将自动运行和完成的命令

我想编写一个脚本文件来完成所有工作,例如运行节点服务器、Gradle 运行以及其他命令。 我正在考虑一种创建新终端选项卡并执行其中命令的方法。但无论操作系统如何,我都找不到创建新标签的确切代码。

【问题讨论】:

  • 您甚至没有告诉我们您使用的是哪个终端,那么我们如何知道您的终端是否支持通过程序请求打开新标签的可能性?

标签: zsh script


【解决方案1】:

您可以为此使用一个终端。只需在后台运行命令即可。您可以通过在行尾添加& 来做到这一点。命令 stdout 仍将记录到终端会话。

# Sorry for the Polish date 

while true; do echo $(date); sleep 2; done &
[1] 8873
czw, 28 paź 2021, 09:41:52 CEST
user@user-pc:~$ czw, 28 paź 2021, 09:41:54 CEST
czw, 28 paź 2021, 09:41:56 CEST
czw, 28 paź 2021, 09:41:58 CEST

如果您想将作业带回前台fg

user@user-pc:~$
user@user-pc:~$ fg
while true; do
    echo $(date); sleep 2;
done
czw, 28 paź 2021, 09:48:07 CEST
czw, 28 paź 2021, 09:48:09 CEST
^C

所以脚本最终可能是这样的:

#!/bin/bash

./task1 &
./task2 &
./task3 

【讨论】:

  • 您能否详细说明一下,考虑到我的命令,我有 zsh 和 iTerm
  • 此时终端模拟器无关紧要。 Zsh 是一个更漂亮、更实用的 bash。我假设你在 MacBook 上工作,所以它会安装 bash。创建一个文本文件,并像我在示例中编写的那样编写命令。使文件可执行chmod +x ./script.sh 然后就可以了。
  • 它正在停止执行后的第一个命令,这意味着一旦“Gradle run”执行就“节点服务器停止”
猜你喜欢
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 2019-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多