gpt4 book ai didi

python - 将字符串从 Python 返回到 Shell 脚本

转载 作者:行者123 更新时间:2023-12-05 08:42:15 24 4
gpt4 key购买 nike

我的 Python 代码如下:

x = sys.argv[1]
y = sys.argv[2]
i = sofe_def(x,y)

if i == 0:
print "ERROR"
elif i == 1:
return str(some_var1)
else:
print "OOOps"
num = input("Chose beetwen {0} and {1}".format(some_var2, some_var3))
return str(num)

在我必须在 shell 脚本中执行此脚本并在 shell 变量中返回字符串之后,例如:

VAR1="foo"
VAR2="bar"
RES=$(python test.py $VAR1 $VAR2)

不幸的是,它不起作用。由于代码中有大量 print 和 input(),stderr、stdout 和 stdin 的方式也不起作用。那么我该如何解决我的问题呢?谢谢解答

最佳答案

那甚至不是有效的 Python 代码;您在函数外使用 return。你不想在这里return,只是一个print语句。

x, y = sys.argv[1:3]
i = sofe_def(x,y)

if i == 0:
print >>sys.stderr, "ERROR"
elif i == 1:
print str(some_var1)
else:
print >>sys.stderr, "OOOps"
print >>sys.stderr, "Choose between {0} and {1}".format(some_var2, some_var3)
num = raw_input()
print num

(注意其他一些变化:

  1. 将您的错误消息写入标准错误,以避免它们也被捕获。
  2. 在 Python 2 中使用 raw_input,而不是 input

)

然后是你的shell

VAR1="foo"
VAR2="bar"

RES=$(python test.py "$VAR1" "$VAR2")

应该可以。除非您有充分的理由,否则请始终引用参数扩展。

关于python - 将字符串从 Python 返回到 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42808997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com