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.