如何使用参数制作 Bash 函数? [复制]
Posted
技术标签:
【中文标题】如何使用参数制作 Bash 函数? [复制]【英文标题】:How to make a Bash Function with parameters? [duplicate] 【发布时间】: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"
,那将是一个问题,但他们不是。
【参考方案1】:
在函数调用中去掉括号;它们只是函数定义语法的一部分:
sqltest ~/Downloads/hw5-2.sql
【讨论】:
以上是关于如何使用参数制作 Bash 函数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将传递给我的 bash 脚本的所有参数传递给我的函数? [复制]