Cronジョブがスクリプトを実行していて、関数を読み取らないという奇妙な状況にあります。ええ、太陽フレア。
深刻なことに、私の環境のスキャンを起動する.sh
スクリプトがあるという考えです。以下にその抜粋を示します。スクリプトにより出力ファイルが正常に作成され、出力にこの行echo "Is this line parsed or not?" >> $output
が見つかります。ただし、関数echo "I'm in the function!" >> $output
にある次のエコーは記録されません。スクリプトは関数宣言で停止し、それで終わりです。
私は困惑しています。何か案は?ありがとう!
.....
touch $output
# with this we are creating an empty file
echo "Is this line parsed or not?" >> $output
function do_the_scan() {
# Load text file lines into a bash array.
echo "I'm in the function!" >> $output
.....
関数宣言の構文が間違っています。以下を使用する必要があります。
do_the_scan() {
# Load text file lines into a bash array.
echo "I'm in the function!" >> $output
}
…function
は bashism であるため、スクリプトがBashで実行されない限り。
これは、対話型シェルでのエラーのデモです。
> sh
$ function bar() {
sh: 1: Syntax error: "(" unexpected
$
とにかく、スクリプトのエラー出力を 標準エラー出力のリダイレクト (例:2> err.log
)を使用してキャプチャする必要があります。 crontabのコマンドの行に直接配置して、スクリプトのインタープリターによって生成されたエラーをキャプチャできるようにします。