【发布时间】:2020-06-08 07:13:49
【问题描述】:
我正在尝试在 .bash_profile 中编写一个 bash 函数,其参数将在我的 sql 上运行脚本并对其进行测试,但在尝试调用它时出现以下错误:
$ sqltest() ~/Downloads/hw5-2.sql
-bash: syntax error near unexpected token `~/Downloads/hw5-2.sql`
参数为文件路径。我现在拥有的(也尝试过"$1" 不带引号):
sqltest() { java -cp h2-1.4.200.jar org.h2.tools.RunScript -checkResults -url jdbc:h2:mem:test -script "$1" -continueOnError ; }
【问题讨论】:
-
如果这个猜测是错误的,我建议运行
set -x来启用跟踪记录,重现错误,并向我们展示你是如何做到的,其中包括两者您运行的命令和产生的确切文本(直至并包括错误消息本身;不需要包括与打印提示或其他此类本地挂钩的任何跟踪日志)。 -
(顺便说一句,
"$1"内引号是正确的)。 -
我以
sqltest() ~/Downloads/hw5-2.sql运行 -
运行
sqltest ~/Downloads/hw5-2.sql。()不是函数名的一部分。 -
@Jetchisel,扩展是在函数启动之前完成的,所以
~工作正常。如果他们正在运行sqltest "~/Downloads/hw5-2.sql",那将是一个问题,但他们不是。
标签: bash