Estou tentando escrever uma função de Bash que pegará alguns argumentos da linha de comando e os colocará em uma URL que contém parâmetros de URL (ou seja, contém ? e & ).
Se houver apenas um parâmetro na URL, não há & e não há problema, ou seja, se eu definir a seguinte função:
test() {
cmd.exe /c start https://example.com/\?foo=$1
}
e invocá-lo com test bar , ele abre o URL https://example.com/?foo=bar no meu navegador, o que é totalmente correto.
O problema é quando quero adicionar um segundo parâmetro de URL. Eu então estendo a função da seguinte forma:
test() {
cmd.exe /c start https://example.com/\?foo=$1\&baz=$2
}
mas quando invoco-o com test bar qux , o mesmo URL de antes ( https://example.com/?foo=bar ) é aberto no meu navegador e meu terminal exibe o erro 'baz' is not recognized as an internal or external command, operable program or batch file.
Quebra de URL entre aspas duplas também não ajuda: quando eu mudar para
test() {
cmd.exe /c start "https://example.com/\?foo=$1\&baz=$2"
}
ele abre o URL https://example.com//?foo=bar" e ainda recebo o erro 'baz' is not recognized as an internal or external command, operable program or batch file.