atコマンドを使用してスクリプトを実行すると、正しく動作しません。

atコマンドを使用してスクリプトを実行すると、正しく動作しません。

そのため、ディレクトリ番号を含むファイルを読み込み、そのファイルからpgloaderを実行するbashスクリプトを作成しました。

私はこんな感じ

#create logs for pgloader
Date=`date +%Y_%m_%d`
LOGS="pgloader_logs_$Date"

touch "$LOGS"

echo "loading files from dat folder"
echo "--------------------------------"
pgloader dat/*.load 2> "$LOGS"

#Read brand numbers from input file
while IFS='' read -r line || [[ -n "$line" ]]; do
 #check if dlnr is valid
 dlnr=$line
  if [[ $dlnr == ???? ]]; then

     echo "loading files from $dlnr folder"
     echo "--------------------------------"

     pgloader $dlnr/*.load 2>> "$LOGS"
  fi
done < "$1"

exit 1

私が実行しているディレクトリは次のとおりです。

0002 0005 0021 ... setUpDB.sh brandsnr

私はそれを使って実行しますecho "./setUpDB.sh brandsnr >> someFileToGetTheOutput" | at TIME

問題は、何らかの理由でその間は決して実行されないことです。 atコマンドはファイルを読み取れませんか?私はファイルから読み取るのではなく、数が増えるforループを試してみましたが、その中でも実行されないからです。

スクリプトを直接実行するとうまく動作します。一晩始めなければなりません...

ベストアンサー1

気にしない、私はただ馬鹿だ。間違ったbashで実行しているため[[認識されないようです。

#!/bin/bashshebangを追加すると問題が解決するようです。

私はちょうど点滅していましたが、>>リダイレクトだけでstdoutエラーが見つかりませんでした。

おすすめ記事