1

我正在尝试将 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"

但是目录名称没有分配给变量。你能纠正我哪里错了。

4

1 回答 1

8

当你单独运行 mkdir 命令时,看看它产生了多少输出:

$ mkdir foo
$

没有任何!

当你使用命令替换来生成 mkdir 的参数时,看看你得到了多少额外的输出:

$ mkdir tmpbkp.`date +%F`
$

没有任何!

当你把它放在里面$()时,它仍然不会产生任何输出。

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

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

$ thedir=tmpbkp.`date +%F`
$ mkdir $thedir
$ echo $thedir
tmpbkp.2017-04-06
$
于 2017-04-06T12:19:18.693 回答