下面的命令有什么问题?
$ var1="~/Music/$(date +%d%m%y)"
$ echo "$var1"
~/Music/240118
$ mkdir "$var1"
mkdir: cannot create directory ‘~/Music/240118’: No such file or directory
然而
$ mkdir ~/Music/240118
作品。
在使用 bash 多年后,从没想过我会问这样的问题......
下面的命令有什么问题?
$ var1="~/Music/$(date +%d%m%y)"
$ echo "$var1"
~/Music/240118
$ mkdir "$var1"
mkdir: cannot create directory ‘~/Music/240118’: No such file or directory
然而
$ mkdir ~/Music/240118
作品。
在使用 bash 多年后,从没想过我会问这样的问题......
扩展变量后,波浪号扩展不起作用,因此如果您将文字波浪号放入
var
,它将最终作为文字波浪号到mkdir
. (请注意错误消息中如何mkdir
包含文字波浪号,而不是主目录的实际路径。)而且,由于您在作业中将波浪号放在引号中,因此它也不会在那里扩展。如果它不在引号中,它会:
当然,您总是可以使用
$HOME
: