Моя программа выглядит так.Что делает grep -v '^ #' do
ALL=`cat $1 | grep -v '^#' | wc -l`
FINISHED="0"
for i in `cat $1 | grep -v '^#'`; do
echo "PROBE $i"
I will be doing some operation
FINISHED=`echo $FINISHED"+1"|bc`
Я запустил этот скрипт, указав имя файла в качестве параметра, в котором будет присутствовать список зондов.
У меня есть 2 вопроса
Что
grep -v '^#'
значит. Я узнал, что'^
обычно используется для соответствия определенной строке. Но в имени файла, которое я даю, нет#
. Более того, я получаю общее количество проб дляcat $1 | grep -v '^#' | wc -l
.echo $FINISHED"+1"|bc
. Здесь любая идея относительно того, почему разработчик добавлен|bc
?
Grep бит соответствует только строки, которые не начинаются с #, если я помню правильно -v. '^' - регулярное выражение для начала строки, а '#' должно быть именно таким. Если я ошибаюсь, '-v' инвертирует соответствие, поэтому вы получаете строки, которые не являются комментариями (поскольку # обычно является маркером комментария файла conf). – ssube
Кроме того, если вы используете оболочку BASH, 'FINISHED = \' echo $ FINISHED "+1" | bc \ '', вероятно, может быть заменен на 'FINISHED = $ ((FINISHED + 1))' - устранение необходимо создать дополнительный подпроцесс. – jedwards