BashからPythonにテキストブロックを渡す方法

BashからPythonにテキストブロックを渡す方法

bashに入れてからPythonに送信して、より多くの使用可能なテキストの断片があります。

だから私のコマンドラインは cat input_file | sh bash_file.sh

私のshファイルは

#!/bin/sh
input_data=$(cat)
"$input_data" | python3 ./python_file.py

私のPythonファイルは

contents = sys.stdin.read()
print(contents)

しかし、実際にはコンテンツには何も保存されません。シェルスクリプトファイルに追加したものをPythonでどのように印刷できますか?

ベストアンサー1

$input_dataデフォルトでは正確ですが、標準入力として印刷しません。代わりにというコマンドを実行してみてください $input_data

printf次のように、シェルスクリプトの最後の行を変更して変数の内容を印刷するために使用されます。

printf "%s" "$input_data" | python3 ./python_file.py

おすすめ記事