Bourne shell date命令字符串用作变量 - 返回0

时间:2014-12-06 17:10:16

标签: shell sh

在Android Linux上的

- 我想为一个日期值分配一个var - 但是我无法弄清楚如何获取(Busybox?)shell不能为我想要的格式返回0。

let hourfiletag="$(date +%j%H)"
echo $hourfiletag
let tagtwo="D$hourfiletag"
echo $tagtwo
let tagthree="D${hourfiletag}H"
echo $tagthree

let hourfiletag="$(date +D%jH%H)"
echo $hourfiletag
let tagtwo="D$hourfiletag"
echo $tagtwo
let tagthree="D${hourfiletag}H"
echo $tagthree

当我运行它时,这是我得到的输出:

$ ./date1.sh                                        
34011
0
0
0
0
0

date命令可以产生我想要的东西:

$ date +D%jH%H                                      
D340H11

但我无法将其变为可在文件cp操作中使用的变量。谢谢。

2 个答案:

答案 0 :(得分:2)

let用于评估算术表达式

你可以使用:

hourfiletag=`date '+D%jH%H'`

OR:

hourfiletag=$(date '+D%jH%H')

echo "$hourfiletag"
D340H12

答案 1 :(得分:0)

根本不需要let

$ cat a
hourfiletag="$(date +%j%H)"
echo $hourfiletag
tagtwo="D$hourfiletag"
echo $tagtwo
tagthree="D${hourfiletag}H"
echo $tagthree

hourfiletag="$(date +D%jH%H)"
echo $hourfiletag
tagtwo="D$hourfiletag"
echo $tagtwo
tagthree="D${hourfiletag}H"
echo $tagthree

输出:

shell@android:/ $ sh /storage/sdcard0/a
34018
D34018
D34018H
D340H18
DD340H18
DD340H18H