0

我正在编写一个 bash 脚本以从目录中获取最新文件以进行备份。这是脚本:

#!/bin/sh

set -u
set -e

backup_dir=/media/backup

cd $backup_dir

tar_file= $(ls -Art | tail -n 1)

#ls -Art | tail -n 1

echo $tar_file

当我运行脚本时,它会获取正确的文件,但也会返回未找到的错误,我不知道为什么:

./backup: 10: 20130403-120001.tar.gz: not found

我用被注释掉的行测试了它,而不是把它作为一个变量,并且它可以在没有抛出错误的情况下工作,所以它应该可以工作。

4

2 回答 2

3

删除后面的空格=

tar_file=$(ls -Art | tail -n 1)

使用空格,该行被解释为不分配任何内容$tar_file并运行作为$(...). 找不到该命令。

于 2013-04-03T11:14:14.897 回答
2

是否正确

tar_file= $(ls -Art | tail -n 1)

并不是

tar_file=$(ls -Art | tail -n 1)

?

(注意空间)

于 2013-04-03T11:14:49.423 回答