为啥将 python 命令分配给 sh var?这个文件有啥作用? [关闭]
Posted
技术标签:
【中文标题】为啥将 python 命令分配给 sh var?这个文件有啥作用? [关闭]【英文标题】:why assign python command to sh var? what does this file do? [closed]为什么将 python 命令分配给 sh var?这个文件有什么作用? [关闭] 【发布时间】:2021-09-29 12:57:09 【问题描述】: 有人知道这个 .sh 文件的最后一行是做什么的吗? 为什么要用 python 命令将 var 赋值给自身?python文件(bigquery库)如何获取json文件名?
DAY=2021-01-01
GOOGLE_APPLICATION_CREDENTIALS=file.json
GOOGLE_APPLICATION_CREDENTIALS=$GOOGLE_APPLICATION_CREDENTIALS python3 run_calc_bq.py table_name $DAY $DAY
谢谢你:)
【问题讨论】:
调试和使事情一步到位后的剩余物 对我来说,看起来GOOGLE_APPLICATION_CREDENTIALS
变量在 sh 文件中的某处使用。老实说,我无法解释任何事情,因为我需要完整的代码,抱歉。
【参考方案1】:
它在 Python 命令的环境中设置 GOOGLE_APPLICATION_CREDENTIALS
的值,而不是在 shell 本身中。重复变量名有点奇怪。如果您可以将变量添加到 all 命令的环境中,您可以编写
DAY=2021-01-01
export GOOGLE_APPLICATION_CREDENTIALS=file.json
python3 run_calc_bq.py table_name "$DAY" "$DAY"
如果您确实只希望在 Python 命令的环境中使用它,则可以使用更短的变量名。
DAY=2021-01-01
x=file.json
GOOGLE_APPLICATION_CREDENTIALS=$x python3 run_calc_bq.py table_name "$DAY" "$DAY"
【讨论】:
【参考方案2】:变量GOOGLE_APPLICATION_CREDENTIALS
在父脚本中声明,但没有导出。
为了使其对子脚本可用,您有两种选择:
导出
# export to all child processes
export GOOGLE_APPLICATION_CREDENTIALS
或将其添加到命令行
# export to this specific command
GOOGLE_APPLICATION_CREDENTIALS=$GOOGLE_APPLICATION_CREDENTIALS python3 ...
【讨论】:
谢谢你,有道理:)以上是关于为啥将 python 命令分配给 sh var?这个文件有啥作用? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
为啥直接将 Arrays.asList() 分配给 var 时会出现 AssertionError?
当我调用 JsonConvert.DeserializeObject() 时,为啥将 JArray 分配给 var 失败?
简单的 Python 问题:为啥我不能将变量分配给排序列表(就地)? [复制]