Você precisa colocar o endereço entre aspas:
chromium-browser 'http://whatever.com/?x=1&y=2'
Ao inserir um URL do Google Maps Directions na linha de comando (para abrir com o navegador chrom via Terminal), há um e comercial ( &
) no URL, mas o terminal o quebra por causa de coisas do Unix serem do Unix. Existe algo que eu possa digitar no terminal que, quando o comando realmente passar, será tratado como um e comercial?
Will; amp; trabalho?
Você precisa colocar o endereço entre aspas:
chromium-browser 'http://whatever.com/?x=1&y=2'
As cotações corrigirão isso, mas você também pode escapar com uma barra invertida:
echo http://whatever.com/?x=1\&y=2
Não dizer que isso é melhor, de qualquer forma, é apenas outra opção para situações como essa.
Na verdade, isso não importa neste caso, mas há uma diferença entre aspas simples e aspas duplas.
As aspas duplas substituem os caracteres especiais, como '$' e aspas, enquanto as aspas simples tratam tudo literalmente, exceto pela aspas simples de fechamento.
Ambos agrupam o texto, o que faz com que o cromo trate um único argumento e caracteres como "; # & amp;" não têm significado especial nesse contexto.
Isso mostra o uso de '\' para escapar de aspas duplas entre aspas duplas e uma barra invertida em si:
mat@sen:~$ echo "a&bc\#de\"f"
a&bc\#de"f
Com aspas simples, nada muda:
mat@sen:~$ echo 'a&bc\#de\"f'
a&bc\#de\"f
Sem as aspas, o '& amp;' divide em dois comandos:
mat@sen:~$ echo a&bc\#de\"f
[1] 2619
a
bc\#de"f: command not found
[1]+ Done echo a
[1]+ Done echo a
Normalmente, quando se lida com um tipo de citação, você pode apenas colocá-lo no outro tipo, mas você pode ter problemas com isso:
mat@sen:~$ echo "'a'bc$foo"
'a'bc
As aspas simples não são substituídas, mas o '$' é. A seguinte sintaxe funciona:
mat@sen:~$ echo $'a\'bc$foo'
a'bc$foo
Tags command-line bash