0

誰かが私のシェルスクリプトの苦労を手伝ってくれたら助かります。次のコードは、ゾーン ファイルを再署名するためのシェルスクリプトです。

#!/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

スクリプトを手動で開始すると、2 つのエラーが発生し、その理由がわかりません。

最初のエラー: !/bin/bash: そのようなファイルまたはディレクトリはありません

ディレクトリ/binにbashが存在することを確認しました。

2 番目のエラー: -N ファイルを開けませんでした。

引用のエラーのようですが、私はすでに ",' と ' を試しましたが、どれも機能しませんでした。

他に何を試しましたか? また、行末がUNIXスタイルに変換されていること、およびファイル内に他の誤って配置されたシンボルがないことも確認しました。

解決済み ファイルが壊れているようで、新しいファイルを作成し、コードを手動で入力しました。また、いくつかの間違った引用符を修正しました。

#!/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
4

1 に答える 1