databricks cli:在bash脚本中运行作业时发生JSONDecodeError

databricks cli:在bash脚本中运行作业时发生JSONDecodeError,json,bash,databricks,Json,Bash,Databricks,我正在尝试在Linux服务器上的bash脚本中运行带有笔记本参数的Databricks作业。我遵循的是来自的说明,并且我已经验证了这些命令在终端中工作 这是我的剧本: #!/bin/bash ### this commands works in terminal but not when running script databricks jobs run-now --job-id 1 --notebook-params '{"param1":"value1"}' ### this comm

我正在尝试在Linux服务器上的bash脚本中运行带有笔记本参数的Databricks作业。我遵循的是来自的说明,并且我已经验证了这些命令在终端中工作

这是我的剧本:

#!/bin/bash

### this commands works in terminal but not when running script
databricks jobs run-now --job-id 1 --notebook-params '{"param1":"value1"}'

### this command works fine in terminal and when running script
databricks runs list
我得到的错误是:

Error: JSONDecodeError: Expecting value: line 1 column 59 (char 58)

另一个有趣的是,其他不需要JSON字符串参数的
databricks cli
命令工作。

问题中提供的脚本实际上并不代表我正在运行的脚本

我实际运行的脚本如下所示:

#!/bin/bash

currentdate=`date +\%Y\%m\%d`
RUNDATE=$(date "--date=${currentdate} - ${stepsize} day" +%Y%m%d)

### this commands works in terminal but not when running script
databricks jobs run-now --job-id 1 --notebook-params '{"param1":"value1", "rundate":"$RUNDATE"}'

### this command works fine in terminal and when running script
databricks runs list
问题是向JSON传递一个变量

工作版本如下:

#!/bin/bash

stepsize=1
currentdate=`date +\%Y\%m\%d`
RUNDATE=$(date "--date=${currentdate} - ${stepsize} day" +%Y%m%d)

echo $rundate 

databricks jobs run-now --job-id 263 --notebook-params '{"param1":"value1", "rundate":"'"$RUNDATE"'"}'

databricks runs list

尝试使用utf-8语言环境显式运行该命令:
LANG=en_US.UTF8 databricks作业立即运行--job id 1--notebook参数“{”param1:“value1”}”
。这行得通吗?我试着在脚本中添加
export LANG=en_US.UTF8
,也试着在databricks命令前面添加
LANG=en_US.UTF8
,但仍然得到相同的错误脚本在终端中运行它的主机上运行,对吗?(而不是在容器或虚拟机中,对吗?)更正我正在终端(
/run\u script.sh
)中运行脚本,并且它就是我能够成功运行命令的同一终端。当我试图在脚本中执行命令时,它们就是不起作用。你是以另一个用户的身份运行它吗?