4

私は特定の順序でいくつかのPythonプログラムを実行するためのbashスクリプトを書いていますが、次のようになります。

#!/bin/bash
set -e
python prog1.py #make database
python prog2.py #plots
python prog3.py #more plots

これは問題なく実行されますが、最初の行をコメントアウトすると、次のようになります。

#!/bin/bash
set -e
#python prog1.py #make database
python prog2.py #plots
python prog3.py #more plots

クラッシュします:

./python_progs.sh: line 3: plots: command not found

これは、「plots」の前にある「#」を無視して、コードとして実行しようとしているようです。もう1つの奇妙なことは、これが常に発生するわけではなく、2番目のコードが問題なく実行されることもあれば、クラッシュすることもあります。bashスクリプトでコメントがどのように機能するかについて基本的なことを見逃していますか?

以下にコメントしている人々のために、ここに正確なコードがあります:

#!/bin/bash
set -e
python footprint_hex.py >> ./paper/qso_num.txt #this makes the footpring figures
python sed_db_read.py #makes the inital databases
python sed_db_read2.py #makes the new databases for lum and civ and modles
python sed_db_plots_paper.py #plots
python sed_db_plots_paper_png.py #plots

コメントされている行がない場合は正常に機能しますが、3行目と4行目をコメントアウトすると次のようにクラッシュします。

./compile_dbs.sh: line 5: and: command not found

3、4、5行目をコメントアウトすると、次のようにクラッシュします。

./compile_dbs.sh: line 6: plots: command not found

スクリプトを実行するための正確な手順は次のとおりです。

./compile_dbs.sh
4

2 に答える 2

0

問題を見つけました!実行中にbashスクリプトを編集していましたが、これがクラッシュの原因でした。

于 2012-05-04T17:23:55.807 に答える
-2

何が起こっているのか完全にはわかりませんが、#plotsスクリプトへの引数として解釈されていると思いますprog2.py

安全のために、コメントを別の行に配置することをお勧めします

于 2012-05-03T18:36:23.117 に答える