2015-12-08 3 views
0

Я прошу о помощи и был бы признателен, если бы кто-то мог помочь мне с моей борьбой с 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 
+0

но вы используете 'bash' в окне терминала? Подтвердите это эхо 'echo $ BASH_VERSION'. Теперь используйте 'type bash' или' which bash', чтобы увидеть полное имя пути. Может быть, он хранится в '/ usr/bin /' или аналогичном? Я не понимаю, почему вы храните вывод в 'command = $ (...)', вы не используете '$ command' в своем скрипте. Удачи. – shellter

+1

Попробуйте изменить первую строку на '#!/Bin/bash -xv'. Попробуйте окружение '$ hash' с двойными кавычками. Для чего нужна команда? –

+0

, который bash дает мне/bin/bash. команда пыталась исправить ошибку, которая произошла, когда я только выполнил команду dnssec-signzone. Bash_Version: 4.3.30 (1) -изъявление. С двойными кавычками вокруг $ hash и -xv позади/bin/bash -> точная точная проблема –

ответ

0

Файл, кажется, сломан, создан новый файл и вручную заполняется кодом. Также исправлены некоторые неправильные кавычки.

#!/bin/bash 
cd /var/cache/bind/ #Key Material is there 
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 

- lt_katana