我寫一個bash腳本在一個特定的順序運行多個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
這是因爲如果忽略了「情節」的前面「#」,並試圖運行它的代碼。另一個奇怪的事情是,這不會一直髮生,有時第二個代碼運行沒有問題,有時會崩潰。我是否缺少關於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
這是完整的代碼完全在文件中? – MattJ
如果這是文件的確切內容,請用'xxd'確認以十六進制轉儲。確保那裏沒有任何不可見的角色。另外,如果你在運行時編輯一個shell腳本,你可以得到非常奇怪的錯誤 - 不要這樣做。 – derobert
你必須馴服我們......如果不是,請更新你正在採取的確切步驟,並檢查你的bash文件是否沒有任何奇怪的控制字符。使用'set -x'檢查腳本 – KurzedMetal