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

文章讲述了如何在shell脚本中嵌入Python代码以处理字符串,如提取数字和特殊符号,然后通过`scontrolshowjobid`获取jobid并调用Python程序,确保返回值被正确赋值给shell变量。

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

###cat语句之后是python程序,并保存为tmp_ID.py
cat <<EOF > 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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值