내 bash 스크립트에 값이 다음과 같은 변수가 있습니다.
~/a/b/c
확장되지 않은 물결표입니다. 이 변수에 대해 ls -lt를 수행하면 ($ VAR이라고 함) 그러한 디렉토리가 없습니다. bash 가이 변수를 실행하지 않고 해석 / 확장하도록하고 싶습니다. 즉, bash가 eval을 실행하고 평가 된 명령은 실행하지 않기를 원합니다. bash에서 가능합니까?
확장하지 않고 스크립트에 어떻게 전달 했습니까? 나는 큰 따옴표로 둘러싼 논쟁을 통과시켰다.
이 명령을 사용하여 무슨 뜻인지 확인하십시오.
ls -lt "~"
이것이 바로 내가 처한 상황입니다. 물결표가 확장되기를 원합니다. 다시 말해,이 두 명령을 동일하게하기 위해 마법을 대체해야하는 것은 무엇입니까?
ls -lt ~/abc/def/ghi
과
ls -lt $(magic "~/abc/def/ghi")
~ / abc / def / ghi가 존재할 수도 있고 존재하지 않을 수도 있습니다.
foo=~/"$filepath"
또는foo="$HOME/$filepath"
dir="$(readlink -f "$dir")"
eval
.