Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Gitlab: piping commands with grep not working?

The following command in a job script:

STATUS_ID=$(grep -Eo "Status Code [0-9]+: Done" somefile | grep -Eo "[0-9]+")

Seems to be causing the following ci lint error:

script config should be a string or an array of strings

The command works fine on my bash however when trying to grep the status code via a file containing the line:

Status Code 8484: Done

What is causing the error on gitlab?

like image 872
pkaramol Avatar asked Nov 15 '17 10:11

pkaramol


1 Answers

The colon (:) makes the line be interpeted as yaml map.

The solution (to escape the special meaning of the colon) is to enclose the entire line in single quotes:

'STATUS_ID=$(grep -Eo "Status Code [0-9]+: Done" somefile | grep -Eo "[0-9]+")'
like image 200
pkaramol Avatar answered Oct 04 '22 12:10

pkaramol