我正在编写一个bash脚本,以特定的顺序运行几个python程序,它看起来像这样:
#!/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'前面的'#'并试图将它作为代码运行。另一个奇怪的事情是这不会一直发生,有时第二个代码运行没有问题,有时它会崩溃。我是否遗漏了关于评论如何在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
答案 0 :(得分:0)
我发现了问题!我在运行时正在编辑bash脚本,这就是导致崩溃的原因。
答案 1 :(得分:-2)
我不完全确定发生了什么,但我的猜测是它将#plots
解释为脚本prog2.py
的参数
为了安全起见,您可能只想将评论放在单独的一行