Se $NAME
contiver caracteres que são expandidos de alguma forma pelo shell (como espaços ou $
), você terá problemas. Você tem que escapar deles. Isso rapidamente fica muito peludo.
Para citar para todos os casos, você tem que colocar o nome do arquivo em um arquivo que você copia para o controle remoto e, em seguida, usar o conteúdo como argumento para o seu comando. Algo como:
NAME="$1"
TMPF=/tmp/tmpf-$$ # If you have mktemp then use that instead
printf %s "$NAME" >$TMPF
scp "$TMPF" user@server:$TMPF
ssh user@server "ls \"$(cat $TMPF)\""