Mam zmienną w moim skrypcie bash, której wartość jest mniej więcej taka:
~/a/b/c
Zwróć uwagę, że jest to nierozwinięta tylda. Kiedy robię ls -lt na tej zmiennej (nazwij ją $ VAR), nie otrzymuję takiego katalogu. Chcę pozwolić bashowi zinterpretować / rozszerzyć tę zmienną bez jej wykonywania. Innymi słowy, chcę, aby bash uruchamiał eval, ale nie uruchamiał ocenianego polecenia. Czy to możliwe w bash?
Jak udało mi się przekazać to do mojego skryptu bez rozszerzenia? Przekazałem argument, otaczając go podwójnymi cudzysłowami.
Wypróbuj to polecenie, aby zobaczyć, co mam na myśli:
ls -lt "~"
Dokładnie w takiej sytuacji jestem. Chcę, aby tylda została rozszerzona. Innymi słowy, czym powinienem zastąpić magię, aby te dwa polecenia były identyczne:
ls -lt ~/abc/def/ghi
i
ls -lt $(magic "~/abc/def/ghi")
Zauważ, że ~ / abc / def / ghi może istnieć lub nie.
eval
.