git bash擴展命令支持

前言

git bash 使用了mingw,這給擴展帶來了極大可能性,但是由於精簡,gitbash的mingw-get(mingw的包管理工具)是被刪除了的,但是安裝擴展要和git bash分開,進行額外安裝,因爲他們的動態庫有一些不一致,如果強行覆蓋動態庫將導致部分軟件無法啓動

step1 下載mingw-get

官網http://www.mingw.org/
mingw-get下載地址https://mirrors.tuna.tsinghua.edu.cn/osdn/mingw/68260/mingw-get-setup.exe

step2 安裝

在這裏插入圖片描述
隨便安裝到一個地方,選項自選,看個人喜好

step3 git bash關聯

在gitbash裏找到你安裝的位置

/c/MinGW/bin/mingw-get.exe --version #檢查位置是否正確
cp ~/.bash_profile ~/.bash_profile.bak.`date '+%Y-%m-%d.%H:%M:%S'` #備份
echo 'export PATH=$PATH:/c/MinGW/bin' >> ~/.bash_profile #注意替換正確的bin路徑和使用單引號,否則會自動翻譯變量
source ~/.bash_profile #刷新當前bash

git bash下測試

更新軟件列表
mingw-get update
查看可安裝的包
mingw-get list|grep Package
安裝make(linux下makefile利器)

mingw-get list|grep Package|grep make #查找名字包含make的包
mingw-get install  mingw32-make #安裝make
mingw32-make

1)如果mingw32-make中文亂碼

二進制文件返回的中文是gbk編碼,解決方式有兩種

  • 設置git bash編碼爲GBK
    在gitbash頁面右鍵打開Options
    在這裏插入圖片描述
    選擇編碼爲gbk,但這個方法缺點是ssh連接linux時因爲linux編碼是utf-8而亂碼,還得改成utf-8,還是以utf-8爲標準不推薦該方案
  • 使用命令行代理轉換輸出流
    例子:commandproxy.sh
#!/bin/bash
bashname=$(basename $0)
$@ 1> /tmp/$bashname.out 2>/tmp/$bashname.err
state=$?
iconv -f GB2312 -t UTF-8 /tmp/$bashname.out
if test -s /tmp/$bashname.err; then
    iconv -f GB2312 -t UTF-8 /tmp/$bashname.err 1>&2
    exit $state
fi

使用方法 sh commandproxy.sh mingw32-make將輸出utf-8編碼的中文
一勞永逸的話在bin目錄下編寫
make

#!/bin/bash
bashname=$(basename $0)
mingw32-make $@ 1> /tmp/$bashname.out 2>/tmp/$bashname.err
state=$?
iconv -f GB2312 -t UTF-8 /tmp/$bashname.out
if test -s /tmp/$bashname.err; then
    iconv -f GB2312 -t UTF-8 /tmp/$bashname.err 1>&2
    exit $state
fi

然後就可以使用make

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章