Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在unix shell脚本中分配变量_Bash_Shell_Awk - Fatal编程技术网

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”
对不起,我漏掉了`符号。。。因此,第二次尝试在开始时也应该有一个`符号……您的两个命令在这里都按原样工作。