内部でbashスクリプトを呼び出す必要がある既存のPythonコードがあります。 Pythonコードは、ユーザーが二重入力するのを防ぐためにシェルに渡す必要があるいくつかの変数をキャプチャします。
これをシミュレートするためにテストスクリプトを作成しましたが、シェルから変数をエコーできません(nullを返します)。
1):子プロセスを使用して呼び出されるシェルスクリプトにPython変数を渡すことはできますか? 2)これを達成するために以下のコードを最適化できれば、フィードバックを受け取ることができます。
Pythonコード:
import os
import subprocess
first=input("Enter the first ip")
second=input("Enter the second IP")
subprocess.call(['bash','./script.sh',first,second])
Bashコード(script.sh):
#!/bin/bash
###########################
echo "The First IP is $first"
echo "Enter your server "
read faulty_server
echo "The server is $faulty_server"
ベストアンサー1
Bashスクリプトの最初のパラメータは呼び出されませんが、$first
です$1
。
Bashスクリプトの2番目のパラメータは呼び出されませ$faulty_server
んが$2
。