J'ai une variable dans mon script bash dont la valeur est quelque chose comme ceci:
~/a/b/c
Notez qu'il s'agit d'un tilde non développé. Quand je fais ls -lt sur cette variable (appelez-la $ VAR), je n'obtiens pas un tel répertoire. Je veux laisser bash interpréter / développer cette variable sans l'exécuter. En d'autres termes, je veux que bash exécute eval mais pas la commande évaluée. Est-ce possible en bash?
Comment ai-je réussi à transmettre cela dans mon script sans extension? J'ai passé l'argument en l'entourant de guillemets doubles.
Essayez cette commande pour voir ce que je veux dire:
ls -lt "~"
C'est exactement la situation dans laquelle je me trouve. Je veux que le tilde soit élargi. En d'autres termes, par quoi dois-je remplacer la magie pour rendre ces deux commandes identiques:
ls -lt ~/abc/def/ghi
et
ls -lt $(magic "~/abc/def/ghi")
Notez que ~ / abc / def / ghi peut exister ou non.
foo=~/"$filepath"
oufoo="$HOME/$filepath"
dir="$(readlink -f "$dir")"
eval
.