Os comandos date
são avaliados quando você declara o alias .
Veja um exemplo de alias t
:
$ alias t="echo \"$(date +%k%M)\""
$ alias t
alias t='echo "1357"'
Você pode corrigir isso usando aspas simples:
$ alias t='echo "$(date +%k%M)"'
$ alias t
alias t='echo "$(date +%k%M)"'
Para mais informações, consulte Diferença entre aspas simples e duplas no Bash
Ou se o comando não precisar ser um alias, use uma função:
$ function t { echo "$(date +%k%M)"; }
$ declare -f t
t ()
{
echo "$(date +%k%M)"
}
Ou um script:
#!/bin/sh
echo "$(date +%k%M)"
Atualização, por edição recente
$ alias t='echo '$(date +%k%M)''
$ alias t
alias t='echo 1400'
Pense nessa definição de alias como três strings:
- Uma string entre aspas simples:
'echo '
- Uma string sem aspas:
$(date +%k%M)
- Uma cadeia nula entre aspas simples:
''