4

我正在编写一个 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
4

2 回答 2

0

我发现了问题!我在运行时正在编辑 bash 脚本,这就是导致崩溃的原因。

于 2012-05-04T17:23:55.807 回答
-2

我不完全确定发生了什么,但我的猜测是它被解释#plots为脚本的参数prog2.py

为了安全起见,您可能只想将评论放在单独的行上

于 2012-05-03T18:36:23.117 回答