Essas não são variáveis de shell, são lftp
de variáveis de configuração, variáveis definidas para lftp
no prompt lftp
CLI ou em lftp
arquivos de configuração, elas não têm nada a ver com shell (a menos que você queira considerar lftp
como shell, pois é de alguma forma um interpretador para uma linguagem semelhante a shell e pode até mesmo executar comandos com seu operador !
(embora ele dependa de uma shell real para isso)) .
Se você quiser que as variáveis do shell sejam definidas com o mesmo nome (mas por que você faria isso?), tome cuidado, pois a maioria dos shells tem muitas restrições sobre quais caracteres o nome de suas variáveis pode conter.
Para a maioria dos shells, os nomes de variáveis começam com uma letra ou sublinhado (podem ser letras ASCII ou caracteres alfabéticos, conforme definido pela sua localidade em alguns shells) e consistem apenas em letras, dígitos decimais e sublinhados.
Alguns shells como rc
ou es
permitem qualquer caractere (exceto =
(para rc
) e NUL) no nome da variável:
; a:b = c
; echo $'a:b'
c
bash
, yash
e algumas versões de zsh
permitem caracteres classificados como alfabéticos em sua localidade, portanto, você pode enganar essas conchas para aceitar :
como um caractere de nome de variável válido construindo uma localidade personalizada onde :
é classificado como alfabético, mas isso seria uma má ideia e certamente quebraria as coisas (por exemplo, ${var:something}
já tem um significado especial em bash
e zsh
).
Agora, os nomes das variáveis environment podem conter qualquer caractere, exceto NUL e =
. Assim, você pode passar uma variável de ambiente para um comando que contenha :
ou -
:
$ env foo:bar=baz printenv foo:bar
baz
mas observe que os shells (exceto rc
/ es
) não poderão usá-los e alguns shells poderão até mesmo removê-los do ambiente (e isso não afetará o lftp
que não mapeia o ambiente variáveis para suas variáveis de configuração AFAIK).
Para definir as variáveis lftp
na inicialização, você pode fazer:
lftp -e 'set xfer:log-file transfer.log' sftp://server/
Ou incorpore-o em um script lftp para uso não interativo:
lftp -c '
set xfer:log-file transfer.log
get https://unix.stackexchange.com/questions/240502'
Ou
#! /usr/bin/lftp -f
set xfer:log-file transfer.log
get https://unix.stackexchange.com/questions/240502
Ou você pode adicionar essas definições de variáveis ao seu ~/.lftp/rc
.