我正在编写一个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
我使用已注释掉的行测试它,而不是将其作为变量放置,并且在没有抛出错误的情况下工作,因此它应该可以工作。
答案 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)
(介意空间)