Shell脚本中运行python程序并获得返回值在shell脚本中使用

对于一些字符串的处理,比如提取字符串中的数字、字符串特殊符号分割等,使用Python的一些函数效率更高。这就需要在sh脚本里面编写Python程序,并获得返回值。

###cat语句之后是python程序,并保存为tmp_ID.py
cat < tmp_ID.py
#!/bin/bash
import sys
argv1=sys.argv[1]
def ID_reduce():
    part1=argv1.split("=")
    print(part1[1])
    return part1[1]
ID_reduce()
#sys.exit(re_ID)
EOF
ID_name=$(scontrol show jobid=5557010)
a=$(python3 tmp_ID.py $ID_name)
echo $a

本小程序是搭配slurm使用的,获得jobid=5557010的所有信息,并将此保存为ID_name(变量),运行tmp_ID程序,将返回的参数保存在变量a中。

PS:在子程序def: ID_reduce中必须要包括print(part1[1]),不然无法返回值,也就是变量a是空值。

参考:

shell - Assign return value from python method to a variable in bash script - Stack Overflow

你可能感兴趣的:(python,bash)