我有几个文件需要从多个目录备份。很少有文件来自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")
经过一些尝试和搜索,我无法动态地解决~
,即在脚本的执行中。但是,有一种简单的方法可以做到这一点,即使用$HOME
shell变量。$HOME
指向用户的主路径。所以,最后,我使用了下面的文件数组:
array=("${HOME}/.bash_aliases" "${HOME}/.bashrc" "${HOME}/.ssh/config" "${HOME}/.ssh/set_git_profile.sh")