希望您能为我指明正确的方向。我有一个通过 CLI 运行 openvas 的脚本。
现在您必须运行另一个命令来查看作业的状态。作业总数始终会有所不同。例如,一天会有 7 次扫描,第二天会有 13 次。
我需要脚本暂停直到所有输出都显示完成。
请参阅以下命令的输出。
omp -u admin -w admin -h 127.0.01 -p 9390 -G
7ee0ef08-686e-4ad6-b826-08938fc8b694 Running 28% 192.168.0.10
fa7230f9-6367-4db6-8eb5-f6368375d577 Running 94% 192.168.0.23
fbc4e409-e72d-4749-861d-db60ed55693b Done 192.168.0.25
9e0f2e40-2da4-4ef6-af6f-9ab8cfbf9902 Running 1% 192.168.0.252
492c7462-a75e-4d44-b5dc-5c9af27c9e07 Running 1% 192.168.0.253
在我的 bash 脚本中我使用以下内容
until omp -u admin -w admin -h 127.0.01 -p 9390 -G | grep "Done";
done
现在,当脚本进入“until”阶段时,我收到以下错误
./Pen-test-automation.sh: line 226: syntax error near unexpected token `Done'
./Pen-test-automation.sh: line 226: `Done'
请帮助 :)
答案1
您需要添加do some_command
:
until omp -u admin -w admin -h 127.0.01 -p 9390 -G | grep "Done"
do
:
done
冒号,:
只是一个无操作命令。
更简单的例子
请注意,这会导致您看到的错误:
$ until echo $RANDOM | grep 5; done
bash: syntax error near unexpected token `done'
如果我们添加do
和占位符命令(例如):
,则循环可以正常运行:
$ until echo $RANDOM | grep 5; do : ; done
15857