2017-04-06 160 views
0

我想将mkdir命令的输出分配给一个变量。所以我可以进一步使用该目录。将mkdir命令的输出分配给变量

-bash-4.1$ pwd 
/user/ravi/myscripts/tmpdata 
-bash-4.1$ OUTPUT=$(mkdir tmpbkp.`date +%F`) 
-bash-4.1$ ls | grep tmp 
tmpbkp.2017-04-06 
-bash-4.1$ echo "$OUTPUT" 

但是目录名不是分配给变量。请你纠正我错在哪里。

回答

6

当您通过自身运行mkdir命令,看看它有多少输出产生:

$ mkdir foo 
$ 

无!

当您使用命令替换生成参数MKDIR,看多少额外的输出你:

$ mkdir tmpbkp.`date +%F` 
$ 

无!

当你把它放在$()里面时,它仍然没有输出。

mkdir(至少在GNU版本中)有一个-v选项,它会产生一些输出,但它可能不是你想要的。

你想在变量中的目录名称?先把它放在一个变量中,然后调用mkdir。

$ thedir=tmpbkp.`date +%F` 
$ mkdir $thedir 
$ echo $thedir 
tmpbkp.2017-04-06 
$ 
+0

这个作品kike一个冠军。非常感谢,谢谢 –