Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LINUX GNU在Makefile中创建新用户Postgres DB_Linux_Postgresql_Unix_Makefile - Fatal编程技术网

LINUX GNU在Makefile中创建新用户Postgres DB

LINUX GNU在Makefile中创建新用户Postgres DB,linux,postgresql,unix,makefile,Linux,Postgresql,Unix,Makefile,我是Makefile的新手。我需要为postgres终端自动创建用户 我尝试了这个例子,但它对我不起作用: createuser: @echo "$(OK_COLOR)==> create user$(NO_COLOR)" @psql mydbdevelopmentname @create user myusername; @/q @echo "$(OK_COLOR)==> Done$(NO_COLOR)" 无论是@还是创建用户myusern

我是Makefile的新手。我需要为postgres终端自动创建用户

我尝试了这个例子,但它对我不起作用:

createuser:
    @echo "$(OK_COLOR)==> create user$(NO_COLOR)"
    @psql mydbdevelopmentname
    @create user myusername;
    @/q
    @echo "$(OK_COLOR)==> Done$(NO_COLOR)"
无论是
@还是创建用户myusername
@/q
起作用

当我运行
make createuser
并使用\q从postgres终端手动退出时,我收到以下错误:

/bin/sh:create:未找到命令
make:**[createuser]错误127

调试makefiles时,
@
修饰符没有帮助,因为它在执行这些命令之前不再显示这些命令

我怀疑您实际上想将
create user myusername
传递到
psql
行,但您将其作为单独的命令编写。您需要确保
psql
看到它:

psql -c "create user myusername" mydbdevelopmentname
不要忘记将目标声明为
.PHONY
的依赖项


顺便说一句,Make作为脚本语言通常是一个糟糕的选择——它更适合于从依赖项生成目标,因为它的设计目的就是这样。这种情况更适合于Bash或Python之类的语言。

我现在遇到了不同的错误
psql:FATAL:role“create user myusername”不存在make:**[createuser]错误2
将其与MySQL混淆了-我的意思是
-c
,而不是
-e
(如果您不介意的话,手册页会告诉您)。