Estou tentando executar um script remoto com SSH e esse script altera seu comportamento dependendo se um argumento específico está vazio ou não. Aqui está um exemplo mínimo, onde eu criei um simples tmp.sh
arquivo que ecoa o número de argumentos e, em seguida, quais são os argumentos. Quando eu o executo localmente, ele funciona como esperado, dizendo que ele tem 3 argumentos. Mas quando eu executo o script através do SSH, ele diz que só tem 2 argumentos:
$ cat argtest.sh
#!/bin/bash
echo $#
echo $@
$ ./argtest.sh foo '' bar
3
foo bar
$ ssh user@localhost ./argtest.sh foo '' bar
2
foo bar
Existe uma maneira de obter o SSH para encaminhar o argumento vazio, então o script diz que ele tem 3 argumentos?
fonte