python - 如何将python脚本的输出重定向到bash变量?
问题描述
当重定向python脚本的输出时,在回显输出时它似乎可以工作,但是当我实际将它与另一个对象一起使用时,它会中断并切断它之后的所有内容。
在这种情况下,我们VERSION
设置为"nice dude"
VERSION=$(python3 -c "print('nice dude')")
单独打印变量似乎有效
$ echo $VERSION
>>> nice dude
但是当我用其他任何东西实现这个值时,例如 Python:
$ python3 -c "print('$VERSION')"
>>> File "<string>", line 1
>>> print('nice dude
>>> ^
>>> SyntaxError: EOL while scanning string literal
或者当我用一些连接再次打印它时:
$ echo $VERSION hehe
>>> hehedude
我不确定发生了什么,但在打印由 python 生成的输出时,它似乎是某种回车python3.9.1
。
解决方案
后
VERSION=$(python3 -c "print('nice dude')")
VERSION shell 变量将包含一个尾随换行符,因此将其插入 Python 代码python3 -c "print('$VERSION')"
将导致
print('nice dude
')
这不是有效的 Python。
您可以添加, end="")
到原始打印或找出其他方法来去除尾随换行符,或使用例如三引号。
推荐阅读
- python - firebase 云消息推送通知
- javascript - 在javascript中打印数字序列
- python - Python Pandas .loc 函数
- python - 如何在 Python 中查找字典数组中的公共键
- android - Android Studio:Logcat 与运行
- r - 无法评估 r 中的对象
- class - Delphi XE Class using Parallel:如何?
- javascript - 安装 npm 包时出现问题,react-circular-progressbar
- openlayers - 如何在 openlayers 中为 Circle geom 应用集群源?
- php - 在 laravel 8 和 nuxtjs 中的电子邮件验证后如何重定向用户