在不同的选项卡窗口中并发执行脚本

时间:2017-08-07 09:52:17

标签: git bash osascript

我正在尝试在不同的Mac终端标签中同时克隆git repo,因为它们需要很长时间才能克隆下来。

我已经尝试了下面的很多变化,但似乎无法获得每个单独的克隆,然后在3个单独的终端选项卡中执行命令,同时运行,有关如何将以下内容更改为以下内容的任何想法如果没有安装外部设备如ttab,可以实现这一点吗?

cwd=$(pwd)
osascript -e 'tell application "Terminal" to activate' -e 'tell application "System Events" to tell process "Terminal" to keystroke "t" using command down' -e 'tell application "Terminal" to do script "cd '$cwd' && git clone git@github.com:me/myrepo1.git && cd myrepo1 && git pull && nvm use && npm install &" in selected tab of the front window' &
osascript -e 'tell application "Terminal" to activate' -e 'tell application "System Events" to tell process "Terminal" to keystroke "t" using command down' -e 'tell application "Terminal" to do script "cd '$cwd' && git clone git@github.com:me/myrepo3.git && cd myrepo2 && git pull && nvm use && npm install" in selected tab of the front window' &
git clone git@github.com:me/myrepo3.git && cd myrepo3 && git pull && nvm use && npm install

1 个答案:

答案 0 :(得分:1)

这样做。

response

注意:

  • 克隆回购后你不应该使用#!/bin/bash declare -a repos=("myrepo1" "myrepo2" "myrepo3") me="git@github.com:me" pwd=`pwd` for i in "${repos[@]}" do osascript -e "tell application \"Terminal\"" -e "tell application \"System Events\" to keystroke \"t\" using {command down}" -e "do script \"cd $pwd; git clone $me/$i.git && cd $i && git pull && nvm use && npm install\" in front window" -e "end tell" > /dev/null done ,但我仍然把它保存在脚本中,因为它不会造成任何伤害。
  • 如果您使用git pull,请确保在每个项目的根目录中都有一个包含指定节点版本的nvm use文件。否则.nvmrc将无效。
    • 你可能已经知道了这一点,但我想再说一遍 如果你的脚本没有运行。