mkdir中脚本输出错误

时间:2015-07-29 12:01:02

标签: linux redhat

A = date +"%F"
B = echo $a | cut -d'-' -f1
C = echo $a | cut -d'-' -f2
d = echo $a | cut -d'-' -f3
mkdir -p / backup / $ b_ $ c_ $ d

输出为“29”。我期待/ backup / 2015_07_29

我该如何解决?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用:

[root@mybox]# date +%Y_%m_%d
2015_07_29

代替?

答案 1 :(得分:0)

您的示例的问题是这一行:

mkdir -p /backup/$b_$c_$d

这会查找三个变量:b_c_d。即,下划线被解析为标识符的一部分,并且只有d有效。如果你想继续你写这篇文章的方式,你需要将你的变量分开,例如:

${b}_${c}_${d}

但是,有更好的方法可以编写脚本,如单线程,例如提议的其他解决方案,或(用于多样化):

mkdir -p $(date -I |sed 's/-/_/g')

以ISO格式保存日期可能是首选,因此您可以省略sed-pipe。