Pythonプログラムに多くのファイルパスをリストし、それをターミナルで使用したいとします。
私はそれをファイルに保存することができました。
Pythonプログラムの外部にパイプして、bashが読み取れるようにすることができます。
しかし、canは、現在のシェル(スクリプトを実行しているシェル)が通常のbash変数として出力にアクセスできるように、ある種の変数を設定するだけですか?
環境変数を設定できます。
ただし、現在のシェルにヒットへのアクセスを許可するには、おそらくちょっとしたハックを使用する必要があります。
Python スクリプトで、 を.sh
使用して環境変数を設定する一時ファイルを作成しexport yourname=yourlist
、実行して削除します。
もう 1 つの方法は、たとえば、 Python のモジュールを使用してUnix Domain Socketsを使用し、またはPython のモジュールを使用socket
してシェルで読み取ることです。socat
netcat
mmap
「$var」を使用して bash 変数にアクセスすると改行が保持されるのに対し、プレーンな $var を使用すると改行がスペースに変更されるという違いに注意してください。
paddy$ echo $SHELL
/bin/bash
paddy$ unset frompython
paddy$ cat alltxt.py
from glob import glob
print("\n".join(glob("*.txt")))
paddy$ python alltxt.py
entry3.txt
entry2.txt
test_in2.txt
infile.txt
test_in.txt
entry.txt
entry1.txt
testfile.txt
paddy$ frompython=`python alltxt.py`
paddy$ echo $frompython
entry3.txt entry2.txt test_in2.txt infile.txt test_in.txt entry.txt entry1.txt testfile.txt
paddy$ echo "$frompython"
entry3.txt
entry2.txt
test_in2.txt
infile.txt
test_in.txt
entry.txt
entry1.txt
testfile.txt
paddy$