Bash脚本返回“未找到”错误

时间:2013-04-03 11:09:57

标签: bash

我正在编写一个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

我使用已注释掉的行测试它,而不是将其作为变量放置,并且在没有抛出错误的情况下工作,因此它应该可以工作。

2 个答案:

答案 0 :(得分:3)

删除=之后的空格:

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

对于空格,该行被解释为不向$tar_file分配任何内容并运行作为$(...)的输出获得的命令。找不到该命令。

答案 1 :(得分:2)

是否正确
tar_file= $(ls -Art | tail -n 1)

而不是

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

(介意空间)