簡體   English   中英

Git 使用與 bash 不同的 shell 別名

[英]Git using for aliases different shell than bash

我學習git有一段時間了,最近我一直在使用別名。 一切正常,直到最后一次。 我的示例別名停止工作(git simple-commit 工作正常)

simple-loop = "!simpleLoop() { NAME=$1; i="1"; while [ $i -le $2 ]; do git simple-commit $NAME$i; i=$[$i+1]; done; }; simpleLoop"

我在終端變得致命

simpleLoop() { NAME=$1; i=1; while [ $i -le $2 ]; do git simple-commit $NAME$i; i=$[$i+1]; done; }; 
simpleLoop: 1: [: Illegal number: $[1+1]

看起來 git 沒有使用 bash shell。 知道發生了什么事嗎?

我剛剛測試了該別名的簡化版本:

aa = "!simpleLoop() { i="1"; while [ $i -le "4" ]; do echo $i; i=$[$i+1]; done; }; simpleLoop"

並且git aa確實給出了預期的結果:

D:\git\>git aa
1
2
3
4

可以肯定的是,假設 Git for Windows,使用簡化的PATHCMD會話中測試您的別名:

set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\cmd;%GH%\mingw64\bin;%PATH%

您還可以為i使用數字( i=1而不是"1" )並使用其他語法來增加該變量(如i=$((i+1))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM