Spring 用于在linux上运行postgres docker映像的Bash脚本失败
intellij说,下面脚本第4行的Spring 用于在linux上运行postgres docker映像的Bash脚本失败,spring,bash,spring-boot,docker,dockerfile,Spring,Bash,Spring Boot,Docker,Dockerfile,intellij说,下面脚本第4行的命令似乎有问题 这是不标准的。改用内置的“command-v” 由于哪个psql似乎不起作用,它会自动影响第12行和第13行 在调查过程中,我删除了第4行,然后脚本执行了第6行到第10行,成功地创建了一个docker文件(pg docker),但是我还需要执行schema.sql(第12行)和data.sql(13)。命令(第4行)是否有替代命令 下面是我的bash脚本: #/usr/bin/env bash 设置-euo管道故障 哪个psql>/dev/nu
命令似乎有问题
这是不标准的。改用内置的“command-v”
由于哪个psql
似乎不起作用,它会自动影响第12行和第13行
在调查过程中,我删除了第4行,然后脚本执行了第6行到第10行,成功地创建了一个docker文件(pg docker),但是我还需要执行schema.sql
(第12行)和data.sql
(13)。命令(第4行)是否有替代命令
下面是我的bash脚本:
#/usr/bin/env bash
设置-euo管道故障
哪个psql>/dev/null | |(echo“请确保postgres客户端在您的路径中”&&exit 1)
mkdir-p$HOME/docker/volumes/postgres
rm-rf$HOME/docker/volumes/postgres/data
docker run--rm--name pg docker-e POSTGRES_PASSWORD=POSTGRES-e POSTGRES_DB=dev-d-p432:5432-v$HOME/docker/volumes/POSTGRES:/var/lib/postgresql POSTGRES
睡眠3
导出PGPASSWORD=postgres
psql-U postgres-d dev-h localhost-f schema.sql
psql-U postgres-d dev-h localhost-f data.sql
我得到以下关于Intellij问题的信息
第4行抱怨哪个命令
第6、7和9行投诉$HOME
第11行抱怨PGPASSWORD,PGPASSWORD用于查找和显示命令的完整路径(在脚本中,它仅用于确保命令psql存在)。
IntelliJ或更好的方法(bash)脚本的定义linter建议不要依赖单独的命令,而只使用内置的bash函数命令-v
,这样第4行就可以读取
command -v psql > /dev/null || (echo "Please ensure that postgres client is in your PATH" && exit 1)
也就是说,这很可能不是你真正的问题。您需要在PATH变量中安装PostgreSQL客户端psql
,以运行第12行和第13行中的命令。这正是您在第4行中检查的内容-无论使用哪个
或命令-v
。
如何安装psql
命令取决于您的操作系统。谢谢,我安装了postgres,它工作正常。我已经坐在这里一段时间了,我不会继续学习。。。快乐编码下次粘贴脚本时,请确保脚本可读性好,并且在每行后面不包含不需要的字符,例如12
或