Bash 如何在unix shell脚本中分配变量
我有一个名为Bash 如何在unix shell脚本中分配变量,bash,shell,awk,Bash,Shell,Awk,我有一个名为TIMESTAMP=04/12/2017 03:45:00的变量,并编写了一个脚本将其转换为:/2017\u 04\u 12/03\u 45/。剧本是: echo $TIMESTAMP | tr ' :' // | awk -F/ '{ printf("/%s_%s_%s/%s_%s/\n",$3,$1,$2,$4,$5); }' 这太棒了 现在,我如何将这个东西的输出分配给一个新变量,MYVAR?我试过这个: MYVAR=$(echo $TIMESTAMP |
TIMESTAMP=04/12/2017 03:45:00
的变量,并编写了一个脚本将其转换为:/2017\u 04\u 12/03\u 45/
。剧本是:
echo $TIMESTAMP |
tr ' :' // |
awk -F/ '{ printf("/%s_%s_%s/%s_%s/\n",$3,$1,$2,$4,$5); }'
这太棒了
现在,我如何将这个东西的输出分配给一个新变量,MYVAR
?我试过这个:
MYVAR=$(echo $TIMESTAMP |
tr ' :' // |
awk -F/ '{ printf("/%s_%s_%s/%s_%s/\n",$3,$1,$2,$4,$5); }')
没有运气
然后我也试了一下:
MYVAR=`echo $TIMESTAMP |
tr ' :' // |
awk -F/ '{ printf("/%s_%s_%s/%s_%s/\n",$3,$1,$2,$4,$5); }'`
再一次,没有运气
无论哪种情况,我都会不断收到错误消息:
04/12/2017: no found
也许你的时间戳不好 试试这个
$ myvar=$(date "+%Y/%m/%d %H:%M:%S" | awk -F'[ /:]' -v OFS=_ '
{print "/" $1,$2,$3 "/" $4,$5 "/"}')
$ echo "$myvar"
/2017_04_20/12_31/
从您的帖子中看不清楚,但是您是否在
=
周围加了空格?不允许MYVAR=$(echo$TIMESTAMP | tr':'/| awk-F/'{printf(“/%s_%s/%s_%s/\n”、$3、$1、$2、$4、$5);”)
非常适合测量TIMESTAMP=“04/12/2017 03:45:00”
对不起,我漏掉了`符号。。。因此,第二次尝试在开始时也应该有一个`符号……您的两个命令在这里都按原样工作。