Я прошу о помощи и был бы признателен, если бы кто-то мог помочь мне с моей борьбой с shellscript. Следующий код - это мой shellscript для выхода из зоны-файла.DNSSEC resigining shell script борется
#!/bin/bash
hash=$(head -c 1000 /dev/random | sha1sum | cut -b 1-16)
command=$(dnssec-signzone -3 $hash –N 'KEEP' –o "owolf.dnssec.local" –t /etc/bind/zones/db.owolf.dnssec.local)
sleep 10
service bind9 reload
Когда я запускаю скрипт вручную, он дает мне две ошибки, и я не могу понять, почему.
Первая ошибка: /бен/Баш: Нет такого файла или каталога
Я проверил его Баш присутствует в каталоге/бункером.
Вторая ошибка: -N Не удалось открыть файл.
Кажется, ошибка с процитировать, но я уже попробовал»,» и "ни один из них не работал.
Что еще я пытался, я также пытался? и убедился, что окончания линии конвертируются в стиле Unix, и что нет никаких других missplaced символов в файле.
решаемые файл, кажется, сломана, создается новый файл и вручную заполнены в коде. Также были исправлены некоторые неправильные кавычки.
#!/bin/bash
hash=$(head -c 1000 /dev/random | sha1sum | cut -b 1-16)
dnssec-signzone -3 "$hash" –N "KEEP" –o "owolf.dnssec.local" –t /etc/bind/zones/db.owolf.dnssec.local
sleep 10
service bind9 reload
но вы используете 'bash' в окне терминала? Подтвердите это эхо 'echo $ BASH_VERSION'. Теперь используйте 'type bash' или' which bash', чтобы увидеть полное имя пути. Может быть, он хранится в '/ usr/bin /' или аналогичном? Я не понимаю, почему вы храните вывод в 'command = $ (...)', вы не используете '$ command' в своем скрипте. Удачи. – shellter
Попробуйте изменить первую строку на '#!/Bin/bash -xv'. Попробуйте окружение '$ hash' с двойными кавычками. Для чего нужна команда? –
, который bash дает мне/bin/bash. команда пыталась исправить ошибку, которая произошла, когда я только выполнил команду dnssec-signzone. Bash_Version: 4.3.30 (1) -изъявление. С двойными кавычками вокруг $ hash и -xv позади/bin/bash -> точная точная проблема –