Я пишу скрипт, и мне нужно найти папку рабочего стола текущего пользователя. Я хочу, чтобы он не зависел от языка, поэтому я обнаружил, что в Ubuntu вы можете найти путь к рабочему столу (независимо от языка системы) в ~/.config/user-dirs.dirs
в строке, начинающейся с тега XDG_DESKTOP_DIR
.
Я могу легко получить эту информацию, используя DESK=$(more ~/.config/user-dirs.dirs | grep "XDG_DESKTOP_DIR" | cut -d '"' -f2)
, и получить путь к рабочему столу, но проблема в том, что я получаю что-то вроде этого: $HOME/Desktop
, и мне нужно расширить переменную $ HOME.
Я делал это с eval
, но я знаю, что это плохое кодирование, поэтому я решил изменить его.
Итак, в основном я пытаюсь расширить переменную, которая находится внутри переменной, содержащей смесь текста и переменных. Я хотел бы иметь решение для этого, которое не жестко закодировано для переменной $HOME
, потому что это не первый раз, когда я нахожу эту проблему.
Я уже пробовал ${!DESK}
, ${${DESK}}
( Я могу себе представить, почему это не работает), [[ ${escri} ]]
и другие в сочетании с echo -e
.
Я был бы очень признателен, если бы кто-нибудь смог мне помочь с этой проблемой, поскольку я помню, что у меня уже была эта проблема при первом написании кода, поэтому я сдался и использовал злой eval
.