Выполнение команд докера с переменными bash - PullRequest
0 голосов
/ 29 декабря 2018

По какой-то причине запуск команд docker из сценариев bash не работает, если вы добавляете обычные переменные, например:

c=$(date +"%x")
targets="www.example.com"

docker build -t amass https://github.com/OWASP/Amass.git
docker run amass --passive -d $targets > $c.txt

Ошибка выглядит следующим образом:

./main.sh: 13: ./main.sh: cannot create 12/29/2018.txt: Directory nonexistent

Выполнениете же команды из терминала действуют напрямую.Как я могу это исправить?

1 Ответ

0 голосов
/ 30 декабря 2018

В вашей ситуации слишком опасно использовать параметр даты %x, который обозначает:

% x представление даты в локали (например, 31.12.99)

Вы не можете ничего контролировать, и у вашего тестового компьютера и докера может быть различное поведение, если локаль отличается.

В любом случае, используя формат даты с косой чертой '/', который будет интерпретироваться как разделитель каталогов, приведет к проблеме.

По обеим причинам вам следует определить формат вашей даты.

Например:

#!/bin/bash

c=$(date +'%Y-%m-%d-%H-%M-%S')
targets="www.example.com"

docker build -t amass https://github.com/OWASP/Amass.git
docker run amass --passive -d $targets > $c.txt

Вы должны добавить столько информации (час, минута, секунда ...) в вашу дату, сколько вы думаете, вы можете запустить свой сценарий;в противном случае выходные данные предыдущего запуска будут переопределены.

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