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
我该如何解决?
答案 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。