将mkdir -p命令输出到变量中

时间:2017-05-05 15:13:32

标签: shell

我想将mkdir -p命令输出存储在变量中。

代表: -

HOME=/opt
MY_DIR=`mkdir -p $HOME/mydir`

因此echo $MY_DIR应显示/opt/mydir

但我没有获得所需的输出,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

mkdir -p没有输出(也就是说,它没有向stdout写入任何内容)。

正确的行为是在将其传递给mkdir之前形成您的目录名

my_dir="$HOME/mydir"
mkdir -p -- "$my_dir"

如果您想从mkdir捕获 stderr ,请在命令替换中将其重定向到stdout:

my_dir="$HOME/mydir"
mkdir_msgs=$(mkdir -p -- "$my_dir" 2>&1)
printf 'mkdir wrote the following messages: <%s>\n' "$mkdir_msgs"