Há uma seção intitulada QUOTING em man bash
. Sugiro que você o leia, ou o Manual de Referência do Bash sobre como citar .
Uma linha de comando correta seria:
DATE=$( date --date="TZ=\"Asia/Taipei\" $TIME" +%F\ %H:%M )
-
Usar
$( )
impede alguns problemas de citação que ocorrem com backticks. - Você precisa de aspas duplas no fuso horário (aparentemente por razões de formatação), e aspas duplas para permitir a substituição de variáveis, então apenas escape das aspas internas uma vez.
Não sei ao certo o que você está perguntando em seu último parágrafo, mas observe que o mapeamento de continente / cidade para fuso horário não é bijetivo. Dada uma data e hora em um fuso horário, você não poderá descobrir qual cidade é essa. Vários arquivos em /usr/share/zoneinfo
têm as mesmas informações de fuso horário. Além disso, depende de quando executar o comando, devido ao horário de verão, áreas que alteram todo o fuso horário ou outro estranheza relacionada à data .