我想将mkdir -p
命令输出存储在变量中。
代表: -
HOME=/opt
MY_DIR=`mkdir -p $HOME/mydir`
因此echo $MY_DIR
应显示/opt/mydir
但我没有获得所需的输出,有人可以帮忙吗?
答案 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"