如何用linux shell脚本中的实际主路径替换~ ?



我有几个文件需要从多个目录备份。很少有文件来自home目录。例如,我需要备份~/.ssh/config文件。有多个文件需要备份。文件数组如下所示:

array=("~/.bash_aliases" "~/.bashrc" "~/.ssh/config" "~/.ssh/set_git_profile.sh")

我使用for...do...done循环数组。然而,数组中的每个项都是字符串,我无法用实际路径解析~。例如,将所有文件名中的~替换为/home/<user>

最后的数组应该看起来像下面为用户命名的rahul

array=("/home/rahul/.bash_aliases" "/home/rahul/.bashrc" "/home/rahul/.ssh/config" "/home/rahul/.ssh/set_git_profile.sh")

经过一些尝试和搜索,我无法动态地解决~,即在脚本的执行中。但是,有一种简单的方法可以做到这一点,即使用$HOMEshell变量。$HOME指向用户的主路径。所以,最后,我使用了下面的文件数组:

array=("${HOME}/.bash_aliases" "${HOME}/.bashrc" "${HOME}/.ssh/config" "${HOME}/.ssh/set_git_profile.sh")

最新更新