在Bash脚本中将变量传递给Python

时间:2018-01-22 14:58:01

标签: python bash function

我正在尝试将bash脚本中的变量传递给嵌入式python函数。我正在使用的脚本的最小示例如下:

Last updated   2017  2018
Jan            24.1   9.4
Feb            44.8     0
Mar           140.1     0
Apr           168.7     0
May           194.4     0
Jun           214.7     0
Jul           204.6     0
Aug           159.5     0
Sep           117.3     0
Oct            74.8     0
Nov            30.4     0
Dec             7.2     0

运行脚本给我:“变量是”;所以似乎FULLPATH的参数没有转移到函数中。奇怪的是,如果用“$ 1”,“$ DIRIN”或任何硬编码字符串替换“$ FULLPATH”,代码就可以工作。 我的错误在哪里?我很感激任何建议!

2 个答案:

答案 0 :(得分:1)

问题不在python_print函数中(请注意function关键字与()是多余的)。但在FULLPATH赋值和函数调用

正确的语法

FULLPATH=$(realpath "$OUTFILE")
python_print "$FULLPATH"
  • =与作业中的值
  • 之间没有空格
  • 在函数调用中围绕变量扩展的双引号
  • 扩展必须加双引号除外
    • 如果$出现在分配后<= li>
    • 双括号[[ ]]
    • 之间的条件

请注意

FULLPATH=$ realpath $OUTFILE

在当前shell进程环境中不影响FULLPATH,它只是将FULLPATH设置为$到realpath执行进程环境,也没有捕获输出。

答案 1 :(得分:0)

只是:

  • export您的bash变量,因此可在os.environ
  • 中使用
  • 或使用位置参数并从sys.argv
  • 中读取