在shell中使用〈〈〈执行python代码的含义[duplicate]

0ejtzxu1  于 2022-11-30  发布在  Shell
关注(0)|答案(2)|浏览(737)

此问题在此处已有答案

What's the difference between "here string" and echo + pipe(1个答案)
Redirector "<<<" in Ubuntu?(3个答案)
昨天关门了。
大家好,我想写一个Shell脚本,运行保存在变量$code中的Python代码。
因此,我使用以下命令将脚本保存在变量$code中:

$ export CODE='print("Hello world")'

为了解决这个问题,我在一个名为run的文件中编写了以下脚本:

#!/bin/bash
echo "$CODE" > main.py
python3 main.py

要运行shell脚本,我使用:

./run

但我发现了另一个我不明白的答案:

python3 <<< $CODE

那么我们使用<<<是什么意思呢?

wfveoks0

wfveoks01#

在bash/unix等中,<<<表示here字符串,是一种将标准输入传递给命令的方式。<<<用于字符串,而<<表示here文档,<用于传递文件的内容。

$ python3 <<< 'print("hi there")'
hi there

它将右边的单词传递给左边命令的标准输入。
你可以对|做同样的操作,但只有当你需要的值被包含在内,但你的脚本的当前shell中仍然没有这些变量,也就是说,你没有其他要插入的$变量。如果你这样做,你可以像你的例子中那样使用一个here-string,它允许你引用其他变量。
请参见:https://en.wikipedia.org/wiki/Here_document
https://linuxhint.com/bash-heredoc-tutorial/

r9f1avp5

r9f1avp52#

在Bash中,zsh(和其他一些shell)<<<here string 运算符。

echo "$PYCODE" | python3

相关问题