Faça um atalho de script cygwin que solicite parâmetros

0

Eu criei um script para o cygwin e configurei um atalho como explicado no final deste tutorial .

Por enquanto, meu script tem que receber parâmetros de variáveis ​​e a maneira como foi definido ou é executado como se nenhum parâmetro fosse passado ou se eu definir qualquer coisa após o caminho do script que ele considera como parâmetro literal.

Considere um script (echo.sh) como este:

#!/bin/bash    
echo "this"$1
sleep 30

O alvo no meu atalho:

C:\cygwin64\bin\bash.exe --login -i '/cygdrive/c/cygwin64/echo.sh'

Quando clico no atalho, ele já imprime 'this' e dorme. Eu tentei:

C:\cygwin64\bin\bash.exe --login -i '/cygdrive/c/cygwin64/echo.sh $1' #file not found
C:\cygwin64\bin\bash.exe --login -i '/cygdrive/c/cygwin64/echo.sh' $1 #prints 'this$1'
carla
fonte
Você pode dar um exemplo do que você tentou?
matzeri
Atalhos não podem usar parâmetros variáveis. Você deve modificar seu script para pedir que os valores os usem ou os leiam de um arquivo, conforme apropriado. Note que na verdade não está muito claro o que você está realmente tentando fazer.
DavidPostill
Eu adicionei detalhes ... então eu realmente preciso mudar o script?
carla

Respostas:

0

Como já foi dito nos comentários, os atalhos não podem manipular variáveis.

Você pode criar um script em lote ( script.cmd), que recebe um argumento e invoca o Cygwin.

C:\cygwin64\bin\mintty.exe /usr/bin/bash --login "/cygdrive/c/cygwin64/echo.sh" %1

Você também pode arrastar e soltar um ícone para o seu script.cmd, e ele recebe o caminho do arquivo descartado como um argumento. Você tem que cuidar do Windows <-> traduções de caminho Cygwin ( cygpath) no entanto.

Joe
fonte