У меня есть переменная в моем bash script, значение которой выглядит примерно так:
~/a/b/c
Обратите внимание, что это нерасширенная тильда. Когда я использую ls -lt для этой переменной (назовите ее $VAR), я не получаю такой каталог. Я хочу позволить bash интерпретировать/развернуть эту переменную без ее выполнения. Другими словами, я хочу, чтобы bash запускал eval, но не выполнял команду с оценкой. Возможно ли это в bash?
Как мне удалось передать это в мой script без расширения? Я передал аргумент, окружая его двойными кавычками.
Попробуйте эту команду, чтобы увидеть, что я имею в виду:
ls -lt "~"
Это именно та ситуация, в которой я нахожусь. Я хочу, чтобы тильда была расширена. Другими словами, что я должен заменить магия, чтобы сделать эти две команды одинаковыми:
ls -lt ~/abc/def/ghi
и
ls -lt $(magic "~/abc/def/ghi")
Обратите внимание, что ~/abc/def/ghi может существовать или не существовать.