В моем скрипте 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 может существовать или не существовать.