私は特定の順序でいくつかのPythonプログラムを実行するために、bashスクリプトを書いていますし、それは次のようになります。なぜ私の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
それは「プロット」の前に「#」を無視していると、コードとして実行しようとしているかのようです。別の奇妙なことは、これはいつも起こるわけではないことです。時には2番目のコードが問題なく実行されることもあります。時にはクラッシュすることもあります。私はbashスクリプトでのコメントの仕組みについて何か基本的なものを見逃していますか?
./compile_dbs.sh: line 5: and: command not found
と:何の行は、それが正常に動作しますが、3行目と4行目をコメントアウトするとき、それはでクラッシュコメントしていない場合
#!/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行目、5行目をコメントアウトすると、次のようにクラッシュします。
./compile_dbs.sh: line 6: plots: command not found
正確な手順スクリプトを実行するためのものである:
./compile_dbs.sh
完全なコードは、ファイルとまったく同じですか? – MattJ
ファイルの内容が正確であれば、 'xxd'を使ってそれを16進ダンプするように確認してください。そこには目に見えない文字がないことを確認してください。また、実行中にシェルスクリプトを編集すると、そのような奇妙なエラーが発生することもあります。 – derobert
あなたは私たちを馬鹿にしなければなりません::Sあなたが行っている正確な手順で更新し、あなたのbashファイルに奇妙な制御文字がないかどうかを確認してください。 'set -x'を使ってスクリプトをチェックしてください – KurzedMetal