2016-09-28 10 views
1

私は、自動化のためにさまざまなLinuxツール(sshなど)を呼び出すPythonコードの一部に取り組んでいます。今私は "リターンコード"の取り扱いを検討しています。特定のゼロ以外の戻りコードを生成しますか?

したがって、私は実行する簡単な方法を探しています特定のゼロ以外の戻りコードを与えるコマンドです。例えば、

echo "this is a testcommand, that should return with rc=5" 

などです。もちろん、上記はrc = 0で戻ってくる。

falseと呼ぶことができますが、これは常にrc = 1で返されます。私は私が制御できるRCを与える何かを探しています。

編集:最初の回答はへと終了します。;しかしその問題:出口はbash関数です。だから、私がPythonスクリプトの中からそれを実行しようとすると、 "No such file or directory:exit"と表示されます。

私は実際にそれを得るためにいくつかの簡単なスクリプトを書くことができるいくつかの "バイナリ"ツールを探しています; falseと似たものがあるかどうかを探しています。は既に同梱されています任意のLinux/Unix)。

+0

Pythonからどのようにコマンドを実行しますか? 'subprocess.Popen( 'exit 5'、shell = True')はうまくいくでしょう。 – chepner

答えて

5

サブシェルでexitを実行します。

+0

bash内で直接実行するとうまく動作しますが、Pythonが(* false *のように)実行するコマンドが必要です。ようこそ。 – GhostCat

+0

その場合は、値を返すためにシェルを起動するだけです。 'sh -c" exit 5 "' –

+0

'cmd_str =" bash -c 'exit 5' ''仕事をした!ありがとう! – GhostCat

2

これはあなたが求めているものではありませんが、カスタムrcはexitコマンドで実現できます。このメカニズムは、あなたにサブシェルを保存し、

return_errorcode() 
{ 
    return $1 
} 

だから、私は直接

(exit 5); echo $?オプションに比べ
$ return_errorcode 5 
$ echo $? 
5 

のようなものを使用することができます。

echo "this is a test command, that should return with " ;exit 5 
echo $? 
5 
2

私は.bashrcで定義されているこの機能を持っています。

関連する問題