2016-09-02 258 views
0

シェルスクリプトからpythonスクリプトを実行します。私は "コマンドウィンドウ"(Cygwin)から実行することができましたが、今はシェルスクリプトから呼び出せるようにしたいのです。それは私が思ったように動作しませんし、インターネットは本当にそれで私を助けていません。シェルからPythonスクリプトを実行する

これまでの私のコード:

#!/bin/bash 
python Calibrate.py 

私は誰かがさらに私を助けることができる願っています。 キャリブレーションには、スクリプト自体でExcelリーダーで読み取られた一部のデータを変換するための基本的なコマンドラインが含まれています。

+2

をtest.shに戻って結果を書き、test.shにすべて\rの文字を削除します。エラーメッセージが表示されますか? –

+0

これらは私が取得エラーです: ': [ERRNO 2]いいえそのようなファイルやdirectoryle 'Calibrate.py ./test.sh:4行目:$' \ r' が:コマンドはスクリプトながら が見つかりません私のコマンドウィンドウに従って現在のディレクトリにあります。 –

+0

Calibrate.pyは、スクリプトを実行する場所と同じパスにはないようです。 –

答えて

1

ただ、Pythonの実行ファイルがスクリプトファイルjob.shで

に追加し、PATH環境変数にあることを確認し、

#!/bin/sh python <path/to/python/script>/python_script.py

スクリプトを実行可能にするために、このコマンドを実行して、あなたのために:chmod u+x job.sh を実行し、それ:./job.sh

1

bashスクリプトは、UnixのEOL(行の最後)を使用する必要がある大会、どのtermin各行は\nとなります。しかし、あなたのtest.shシェルスクリプトファイルは、Windows/DOSのEOL規約を使用しているようです。これは、各行を\r\nで終了させます。

test.shで\r文字を取り除く必要があり、Unixの行末を使用するようにエディタを設定する必要があります。

\rをファイルから取り除く簡単な方法は、Unix sedコマンドを使用することです。私はそれはCygwinのに利用できると仮定します。

sed -i 's/\r//g' test.sh 

これは、「それは動作しません」について詳しく説明してください

関連する問題