Bash betiğimde değeri şuna benzer bir değişken var:
~/a/b/c
Genişletilmemiş tilde olduğuna dikkat edin. Bu değişken üzerinde ls -lt yaptığımda (buna $ VAR deyin), böyle bir dizin alamıyorum. Bash'in bu değişkeni çalıştırmadan yorumlamasına / genişletmesine izin vermek istiyorum. Diğer bir deyişle, bash'in eval çalıştırmasını ancak değerlendirilen komutu çalıştırmamasını istiyorum. Bash'de bu mümkün mü?
Bunu genişletme olmadan betiğime nasıl aktarmayı başardım? Çevreleyen argümanı çift tırnakla geçtim.
Ne demek istediğimi görmek için bu komutu deneyin:
ls -lt "~"
Bu tam olarak içinde bulunduğum durum. Tilde'nin genişletilmesini istiyorum. Başka bir deyişle, bu iki komutu aynı yapmak için sihri neyle değiştirmeliyim:
ls -lt ~/abc/def/ghi
ve
ls -lt $(magic "~/abc/def/ghi")
~ / Abc / def / ghi'nin var olabileceğini veya olmayabileceğini unutmayın.
foo=~/"$filepath"
veyafoo="$HOME/$filepath"
dir="$(readlink -f "$dir")"
eval
.