我试图将变量从python脚本发送到bash脚本。我使用popen
,如下所示:
subprocess.Popen(["bash", "-c", ". mainGui_functions.sh %d %s" % (commandNum.get(), entryVal)])
但是,entryVal
有时可以包含一个或多个空格字符。在这种情况下,我将字符串分成多个参数($ 2,$ 3 ..)
我怎样才能在一个论点中得到它?
答案 0 :(得分:4)
简单的解决方案#1:如果您在命令行上输入输入,那么就像执行此操作一样;把它放在引号中:
subprocess.Popen(["bash", "-c", ". mainGui_functions.sh {} '{}'".format(commandNum.get(), entryVal)])
简单的解决方案#2:如果mainGui_functions.sh
已经可执行,那么您可以直接省略bash
部分和pas参数。在这种情况下,subprocess
负责确保将具有空格的条目作为单个arg结束:
subprocess.Popen(["mainGui_functions.sh", str(commandNum.get()), entryVal])
答案 1 :(得分:0)
在bash命令行中添加引号 - 例如,
subprocess.Popen(['bash', '-c', '. mainGui_functions.sh %d "%s"' % (commandNum.get(), entryVal)])