我正在编写一个脚本,我需要找到当前用户的桌面文件夹。我希望它与语言无关,所以我发现在 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.
如果有人能帮助我解决这个问题,我将不胜感激,因为我记得我第一次编写代码时就已经遇到了这个问题,这就是我放弃并使用 wicked 的原因eval。