-1
我想将mkdir -p
命令输出存储在变量中。将mkdir -p命令输出到变量中
为前: -
HOME=/opt
MY_DIR=`mkdir -p $HOME/mydir`
所以echo $MY_DIR
应该显示/opt/mydir
,但我没有得到期望的输出,任何人都可以请帮助?
我想将mkdir -p
命令输出存储在变量中。将mkdir -p命令输出到变量中
为前: -
HOME=/opt
MY_DIR=`mkdir -p $HOME/mydir`
所以echo $MY_DIR
应该显示/opt/mydir
,但我没有得到期望的输出,任何人都可以请帮助?
mkdir -p
没有输出(也就是说,它没有写入标准输出)。
正确的行为是之前形成你的目录名你把它传递给mkdir
:
my_dir="$HOME/mydir"
mkdir -p -- "$my_dir"
如果你想从mkdir
捕捉标准错误,重定向到您的命令替换内标准输出:
my_dir="$HOME/mydir"
mkdir_msgs=$(mkdir -p -- "$my_dir" 2>&1)
printf 'mkdir wrote the following messages: <%s>\n' "$mkdir_msgs"
'mkdir'命令不提供输出。既然你已经知道你想创建什么目录,为什么不把它存储在一个变量中,就像你用它调用'mkdir'一样? –
'mkdir -p'没有提供任何文本输出,这是调用'MY_DIR = $(mkdir -p $ HOME/mydir)'来执行所需操作所需的。你应该做'MY_DIR =“$ HOME/mydir”; mkdir -p“$ MY_DIR”'或类似的东西。 – Petesh
...作为旁边 - 所有大写变量名称由POSIX指定的约定用于对shell或操作系统有意义的变量,而至少有一个小写字符的变量保留给应用程序使用 - 请参阅http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html第四段。 –