我正在尝试在系统升级之前创建一个简单的备份脚本。
我想要一个文件路径(BACKUP_DIRS(数组,然后将其连接到另一个变量(SOURCE_DIRS(,该变量将用于使用tar进行备份
我很难将数组连接到一个间隔的变量中。
#!/bin/bash
BACKUP_DIRS=(
~/.ssh/
~/workspace/
~/Downloads/
)
# Concat paths
SOURCE_DIRS=''
for DIR in "${BACKUP_DIRS[@]}"
do
$SOURCE_DIRS = $SOURCE_DIRS' '$DIR
done
# Backup
tar -czf backup.tar.gz $SOURCE_DIRS
为什么要创建一个字符串SOURCE_DIRS
当你可以只使用
tar -czf backup.tar.gz "${BACKUP_DIRS[@]}"
数组版本扩展到/my/first entry
、/the/second entry
、...
,其中一字符串版本将被解释为/my/first
、entry
、/the/second
、entry
、...
。因此,您的旧方法可能无法像包含空格的路径那样工作。