Eu tenho uma variável no meu script bash cujo valor é algo como isto:
~/a/b/c
Observe que é um til não expandido. Quando eu faço ls -lt nessa variável (chame-a de $ VAR), não recebo esse diretório. Eu quero deixar o bash interpretar / expandir essa variável sem executá-la. Em outras palavras, quero que o bash execute eval, mas não execute o comando avaliado. Isso é possível no bash?
Como consegui passar isso para o meu script sem expansão? Passei o argumento entre aspas duplas.
Tente este comando para ver o que quero dizer:
ls -lt "~"
Esta é exatamente a situação em que estou. Quero que o til seja expandido. Em outras palavras, com o que devo substituir a magia para tornar esses dois comandos idênticos:
ls -lt ~/abc/def/ghi
e
ls -lt $(magic "~/abc/def/ghi")
Observe que ~ / abc / def / ghi pode ou não existir.
foo=~/"$filepath"
oufoo="$HOME/$filepath"
dir="$(readlink -f "$dir")"
eval
.