Bash | онелинер | завиток | Попытка l oop через файл и скормить его, но он выдает ошибку? - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь l oop через file.txt, который имеет домены типа %.google.com, и использовать curl с URL crt.sh для извлечения поддоменов сайтов HTTPS из сертификата.

К сожалению, он выбрасывает ошибка

parse error: Invalid numeric literal at line 1, column 20

скрипт. sh

for i in $(cat file.txt); do echo""; echo "crtsh $i"; echo ""; curl -s https://crt.sh/?q\=$1\&output\=json | jq -r '.[].name_value' | sed 's/\*\.//g' | sort -u; echo ""; done

1 Ответ

0 голосов
/ 06 апреля 2020

Поскольку вы пытаетесь прочитать входной файл построчно , вам нужно немного изменить свой подход.

Следующий пример работает в моей среде и имеет некоторые улучшения для отладки и получить лучшее понимание.

#!/bin/bash

while IFS= read -r line; do
  echo"";

  # Added for easier debugging and understanding
  URL="${line}";
  echo ${URL};

  echo "";

  # Added switches for easier debugging
  #   -i, include the HTTP-header in the output
  #   -w, display http_code on stdout after a completed and successful operation
  curl --silent -x "localhost:3128" --include 'https://crt.sh/?q=${URL}&output=json' --write-out "\n\n%{http_code}\n"; # | jq -r '.[].name_value' | sed 's/\*\.//g' | sort -u;

  curl -s 'https://crt.sh/?q=${URL}&output=json' | jq -r '.[].name_value' | sed 's/\*\.//g' | sort -u;

  echo "";
done < URLs.txt

Можно также изменить его на однострочник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...