私は特定の順序でいくつかの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