我需要制作一个脚本来备份文件,并且我希望将时间戳和基本文件名作为名称的一部分,以便于区分。
#!/bin/bash
filename=$(basename $(pwd))
echo $filename
output_dir="/home/backup/backup_$filename_$(date +%Y-%m-%d_%Hh%Mm%Ssec)/"
echo $output_dir
获得以下输出:-
bash-4.2$ ./backup_1.sh
test
/home/backup/backup_2018-08-21_10h44m10sec/
bash-4.2$
在output_dir名称中,文件名“ test ”仅包括作为后缀添加的时间戳。预期输出为“ / home / backup / backup_test_2018-08-21_10h44m10sec / ”
任何建议都将不胜感激。
答案 0 :(得分:1)
您需要在变量周围使用大括号
${filename}
以此替换您的代码
output_dir="/home/backup/backup_${filename}_$(date +%Y-%m-%d_%Hh%Mm%Ssec)/"
使用当前代码,bash试图查找不存在的$ {filename _}。
更新代码:
#!/bin/bash
filename=$(basename $(pwd))
echo $filename
output_dir="/home/backup/backup_${filename}_$(date +%Y-%m-%d_%Hh%Mm%Ssec)/"
echo $output_dir
输出
test
/home/backup/backup_test_2018-08-21_11h02m55sec/