2012-05-03 2 views
4

나는 특정 순서로 여러 파이썬 프로그램을 실행하는 떠들썩한 파티 스크립트를 작성하고 그것은 다음과 같습니다왜 내 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 

그것은이다 : 그것은과 충돌합니다. 또 다른 이상한 일은 항상 일어나는 일이 아니며 때로는 두 번째 코드가 아무런 문제없이 실행되는 경우가 있습니다. 때로는 충돌이 발생합니다. 코멘트가 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 
+1

전체 코드가 파일과 정확히 일치합니까? – MattJ

+8

그 내용이 파일의 정확한 내용이라면'xxd '를 사용하여이를 16 진수로 덤프하십시오. 거기에 보이지 않는 문자가 없는지 확인하십시오. 또한, 쉘 스크립트를 편집하는 경우 실행 중 -하지 않으므로 * 매우 * 별난 오류가 발생할 수 있습니다. – derobert

+1

당신은 우리를 조롱해야합니다 ... : S 당신이 취하는 정확한 단계로 업데이트하고 bash 파일에 이상한 제어 문자가 없는지 확인하십시오. 'set -x'를 사용하여 스크립트를 확인하십시오. – KurzedMetal

답변

0

문제점을 발견했습니다! 실행 중일 때 bash 스크립트를 편집 중이 었는데 이것이 충돌을 일으켰습니다.

-2

prog2.py

방금 ​​할 수 있습니다 안전을 위해 나는 무슨 일이 일어나고 있는지 전혀 모르겠지만, 내 생각 엔이 스크립트에 인수로 #plots 해석된다는 것이다 주석을 별도의 줄에 넣으십시오.

+3

쉘은 별도의 줄에 주석을 입력 할 필요가 없습니다. – derobert

+2

'command not found'라는 오류 메시지가 bash에서 나옵니다. 그래서 이것은 아마도 prog2.py의 내용으로 할 일이 없을 것입니다. –

관련 문제