Execute o comando Total do bash no windows

2

Estou tentando configurar o alias / function para chamar o Total Commander do bash (MINGW) no Windows. Até agora todas as minhas tentativas falharam, o fecha

function tc() {
  dir="$1"
  if [ "$dir" == "" ]; then
    dir="."
  fi
  /c/TotalCmd/totalcmd.exe /O /L="'cygpath -wa $dir'" /R="'cygpath -wa .'" &

}

Esta solução tem uma desvantagem: o TC é aberto com determinados diretórios, mas os caminhos têm / adicional neles. Isso faz com que o TC vá para o root quando estou tentando ir para um diretório.

Você sabe como configurar esse alias para funcionar corretamente? Obrigada!

    
por jasir 18.02.2013 / 14:18

2 respostas

1

Você tem que citar o parâmetro $ dir, caso contrário você pode estar dando mais de duas strings como argumentos para cygpath (1st -wa, 2nd / path /). Isso será um problema somente quando o parâmetro $ dir contiver um diretório cujo caminho contenha espaços.

I.E.

cygpath -wa "~/x/hello world"

não é o mesmo que

cygpath -wa ~/x/hello world

Isso deve funcionar para você (como aconteceu comigo):

jaroslav@wraptor ~
$ function winPath { cygpath.exe  -wa -- "$1"; }
$ FreeCommander.exe C: "$(winPath /cygdrive/m/muzica/_christian_liturgy/\
    Athonite\ Fathers\ of\ St.\ Anthony\'s\ Greek\ Orthodox\ Monastery\ -\ \
    Vigil\ of\ St.\ Anthony/)"
    
por 18.02.2013 / 18:39
0

Então, solução que funciona, obrigado Jaroslav!

function tc() {
  dir="$1"
  if [ "$dir" == "" ]; then
    dir="."
  fi
  /c/totalcmd/totalcmd.exe /O L="'winPath $dir'"
}

function winPath { cygpath.exe  -wa -- "$1"; }
    
por 26.02.2013 / 12:12