Linux shell表达式中的变量

men*_*h84 1 linux bash shell

hour在shell中有一个包含UNIX时间的变量.

然后如果要格式化这个小时,我使用

date -u -d @$hour +"%Y-%m-%dT%H:%M:%S.000Z"
Run Code Online (Sandbox Code Playgroud)

哪个有效.但是,我想将上面表达式的结果存储到另一个变量中,所以当我这样做时:

formatted=$(( date -u -d @$hour +"%Y-%m-%dT%H:%M:%S.000Z" ))
Run Code Online (Sandbox Code Playgroud)

这是行不通的.我不知道如何hour在评估表达式中引用变量(无论它被调用).

Tho*_*key 11

表达方式

formatted=$(( date -u -d @$hour +"%Y-%m-%dT%H:%M:%S.000Z" ))
Run Code Online (Sandbox Code Playgroud)

使用$((仅适用于算术的.将双括号更改为单个:

formatted=$( date -u -d @$hour +"%Y-%m-%dT%H:%M:%S.000Z" )
Run Code Online (Sandbox Code Playgroud)

后者适用于字符串.

供参考(这些是POSIX shell功能,而不是特定于bash):