【问题标题】:How to make a Bash Function with parameters? [duplicate]如何使用参数制作 Bash 函数? [复制]
【发布时间】: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


【解决方案1】:

在函数调用中去掉括号;它们只是函数定义语法的一部分:

sqltest ~/Downloads/hw5-2.sql

【讨论】:

    猜你喜欢
    • 2020-11-19
    • 2017-09-10
    • 2020-12-31
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2011-04-22
    • 2017-02-20
    • 2015-11-08
    相关资源
    最近更新 更多