我正在尝试将变量从python脚本发送到bash脚本.我正在使用popen,如下所示:subprocess.Popen([bash, -c, . mainGui_functions.sh %d %s % (commandNum.get(), entryVal)])但是,entryVal有时可以包含一个或多个空...

我正在尝试将变量从python脚本发送到bash脚本.我正在使用popen,如下所示:
subprocess.Popen(["bash", "-c", ". mainGui_functions.sh %d %s" % (commandNum.get(), entryVal)])
但是,entryVal有时可以包含一个或多个空格字符.在那种情况下,我将字符串分成多个参数($2,$3 ..)
如何在一个参数中得到它?
解决方法:
简单的解决方案#1:如果您在命令行上键入输入,则可以使用完全相同的方法进行操作;用引号引起来:
subprocess.Popen(["bash", "-c", ". mainGui_functions.sh {} '{}'".format(commandNum.get(), entryVal)])
简单的解决方案2:如果mainGui_functions.sh已经可以执行,那么您可以直接省略bash部分并直接将其参数化.在这种情况下,子流程会确保为您提供带有空格的条目作为单个arg结束:
subprocess.Popen(["mainGui_functions.sh", str(commandNum.get()), entryVal])
沃梦达教程
本文标题为:如何将带有空格的字符串从Python发送到Bash子进程作为单个值?


基础教程推荐
猜你喜欢
- python终止/杀死子进程组 2023-11-12
- windows中python2与python3共存 2023-09-03
- Python执行Linux系统命令的4种方法-转发的 2023-11-12
- 转:ubuntu16安装python3.6并将环境设置为系统默认 2023-09-03
- centos 重新安装python3.6之后 yum 无法使用报错 2023-09-03
- 解决Python复杂zip文件的解压问题 2023-08-08
- pandas中df.rename()的具体使用 2022-08-30
- python-使用Nginx提供静态内容的Django 2023-11-13
- python绘图中的 四个绘图技巧 2023-08-04
- Python函数进阶与文件操作详情 2022-09-02