我正在编写一个简单的 shell 脚本来进行自动备份,我正在尝试使用 basename 创建一个目录列表,然后他们解析这个列表以获取列表中的第一个和最后一个目录。
问题是:当我在终端中使用 basename 时,一切正常,它给了我想要的列表。例如:
basename -a /var/*/
给我一个 /var 中所有目录的列表,名称末尾没有 /,每行一个。但是,当我在脚本中使用它并将变量传递给 basename 时,它会在变量周围加上单引号:
while read line; do
dir_name=$(echo $line)
basename -a $dir_name/*/ > dir_list.tmp
done < file_with_list.txt
使用 +x 运行时:
+ basename -a '/Volumes/OUTROS/backup/test/*/'
因此,结果不是我需要的。
现在,我知道必须有一千种方法可以解决基本名称问题,但是我什么也学不到,对吧?;)
如何摆脱单引号?如果我的目录名称中有空格?