2017-11-27 8 views
0

jenkinsでパラメータを送信しようとしていて、パラメータをpythonファイルで認識しようとしています。またbashからpythonスクリプトにパラメータを送信

param = "Hello World" 
param -> /usr/green/test.py 

をどのようにPYファイルは、パラメータをつかむために知っているん:

私はbashの上でこれを行うことができコマンドはありますか?

答えて

0

あなたはスクリプトにこの方法を渡されたパラメータにアクセスすることができます。

import sys 

print sys.argv[1] 

~ python test.py 'hello world' 
0

一つの解決策は、Pythonでパイプを通してパラメータやプロセスを印刷することです。

同様:

read.py:

#!/usr/bin/python 

import sys 

pythonparams = sys.stdin.read() 

# do something 

その後、

echo "$param"|./read.py 
+0

を私はここにこの答えを指名しますルーベゴールドバーグ賞xD –

+0

:d。できます。ありがとうございました。 – ntj

0

あなたはPythonスクリプトでSYS卵を使用して経由でスクリプトをPythonのBASHからあなたにパラメータを渡すことができます。コマンドの環境変数を渡します。 BASHで

PyScript

import sys 

print 'Number of arguments:', len(sys.argv), 'arguments.' 
print 'Argument List:', str(sys.argv) 

コマンド:

$python test.py $BUILD_ID $BUILD_URL 

出力:あなたは目を配置する必要が

Number of arguments: 2 arguments. 
Argument List: ['test.py', '107', 'http://0.0.0.0:8080/artefact/builds/24'] 
0

このように、スペースで区切られたファイルパスの後に電子スクリプトの引数:

/usr/green/test.py arg1 arg2 arg3 

はスクリプトに、bashの変数の値を渡すためには、あなたが$(ドル記号)と変数名の接頭辞があります。

param="Hello world" 
/usr/green/test.py "$param" 

pythonスクリプトの引数リストには、sys.argvでアクセスできます。リストの最初の要素はスクリプトへのパスです。したがって、2番目の要素は最初の引数です。

/usr/green/test.py(パイソン3):

import sys 

print(sys.argv[1]) 

bashの入力:

param="Hello World" 
python3 /usr/green/test.py "$param" 

bashの出力:

Hello World 

注変数名を引用符で囲むか、HelloとWorldを指定する必要がありますtest.pyに2つの別個の引数として渡されます。

#!/usr/bin/python3 

import sys 

print(sys.argv[1]) 

はbashで入力して、スクリプトを実行可能にします:pythonコマンドなしでスクリプトを実行するには

、あなたが#!行(shebang)行を追加することができます

chmod +x /usr/green/test.py 
関連する問題