Ho una variabile nel mio script bash il cui valore è qualcosa del genere:
~/a/b/c
Si noti che è una tilde non espansa. Quando faccio ls -lt su questa variabile (lo chiamo $ VAR), non ottengo tale directory. Voglio lasciare bash interpretare / espandere questa variabile senza eseguirla. In altre parole, voglio che bash esegua eval ma non esegua il comando valutato. È possibile in bash?
Come sono riuscito a passare questo nel mio script senza espansione? Ho superato l'argomento circondandolo con doppie virgolette.
Prova questo comando per vedere cosa intendo:
ls -lt "~"
Questa è esattamente la situazione in cui mi trovo. Voglio che la tilde si espanda. In altre parole, con cosa dovrei sostituire la magia per rendere identici questi due comandi:
ls -lt ~/abc/def/ghi
e
ls -lt $(magic "~/abc/def/ghi")
Si noti che ~ / abc / def / ghi potrebbe esistere o meno.
foo=~/"$filepath"
oppurefoo="$HOME/$filepath"
dir="$(readlink -f "$dir")"
eval
.