从Windows GitBash中的Shell脚本执行单个功能会意外关闭Shell

时间:2018-10-14 18:03:10

标签: bash function terminal windows-7 git-bash

我最近在我的Windows 64位(两个系统中分别为Windows 7和10)中安装了Git For Windows版本2.19.1.windows.1。

现在,我创建了以下脚本来轻松执行一些常规任务,而无需单独编写每条指令:

#!/bin/bash
## Contains functions and methods that can be executed inside Vagrant SSH Session

export SCRIPT_PATH="$(cd "$(dirname "$0")"; pwd -P)"
export PROJECT_ROOT_PATH="/var/www" PROJECT_ROOT_DIR="/var/www" ROOT_FOLDER="/var/www"

function fcc() {
    echo "########## Frontend Cache clear begins #############"
    [[ "$PWD" =~ "frontend/app" ]] && cd frontend/app
    rm -rf webroot/cache_js && rm -rf webroot/cache_css
    mkdir -m 777 webroot/cache_js && mkdir -m 777 webroot/cache_css
    Console/cake AssetCompress.AssetCompress build -f
    cat /dev/null > ~/.bash_history && history -wc && history -cw && exit
    cd /var/www
    echo "########## Frontend Cache clear ends #############"
    keep_shell_open
}

function bocc() {
    ...
}

function bcc() {
    ...
}

function succ() {
    ...
}

function keep_shell_open() { exec $SHELL; };

现在,当通过Gitbash终端转到脚本目录时,我按如下所示注册了脚本,它意外地打开了GitBash的C:\Program Files\Git\usr\bin目录:

. ./VagrantGuestScript.sh

然后,当我执行此脚本的“ fcc”功能时,它仅执行前两行或三行,然后关闭终端。

谁能解释为什么在尝试注册脚本时为什么会打开Gitbash的bin路径以及为什么只执行函数“ fcc”的2/3行后就关闭了终端?

0 个答案:

没有答案