这里是代码:
userPath=$(shell $$HOME)
move:
#what is the command?
cp -r Minesweeper $(userPath)/
这是错误消息
/bin/sh: 1: /home/daniel: Permission denied
cp -r Minesweeper /
cp: cannot create directory '/Minesweeper': Permission denied
Makefile:10: recipe for target 'move' failed
make: *** [move] Error 1
确定在终端中执行的某些命令可以授予Makefile权限,但是我需要在Makefile中执行命令。
PS:我的ubuntu版本是ubuntu 18.04
Makefile
本身没有权限。错误消息指出运行此Makefile
的用户]没有所需的特权。但这与权限无关。您会注意到该错误表明您无法写入根目录,这当然是您既不需要也不需要的(即使您认为自己也想要,也不应允许它写入)。
第一条错误消息是因为$(shell $$HOME)
不是有效命令。有效命令看起来像$(shell echo "$$HOME")
;但实际上,这完全没有必要。
第二个错误是因为第一个错误,因为第一个赋值返回了一个空变量。
这里不需要$(shell ...)
的原因是,运行命令的shell完全能够自行扩展$$HOME
。实际上,make
也是如此(尽管语法是${HOME}
简单明了)。
move:
cp -r Minesweeper ${HOME}/