将mkdir命令的输出分配给变量

Ram*_*eja 0 shell mkdir mkdirs

我试图将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"
Run Code Online (Sandbox Code Playgroud)

但目录名称未分配给变量.你能纠正我错在哪里吗?

小智 6

当您单独运行mkdir命令时,查看它产生的输出量:

$ mkdir foo
$
Run Code Online (Sandbox Code Playgroud)

没有!

当您使用命令替换生成mkdir的参数时,请查看您获得多少额外输出:

$ mkdir tmpbkp.`date +%F`
$
Run Code Online (Sandbox Code Playgroud)

没有!

当你把它放在里面$()它仍然没有产生输出.

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

您想要变量中的目录名称吗?首先将它放在一个变量中,然后调用mkdir.

$ thedir=tmpbkp.`date +%F`
$ mkdir $thedir
$ echo $thedir
tmpbkp.2017-04-06
$
Run Code Online (Sandbox Code Playgroud)