そのため、ディレクトリ番号を含むファイルを読み込み、そのファイルから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/bash
shebangを追加すると問題が解決するようです。
私はちょうど点滅していましたが、>>
リダイレクトだけでstdout
エラーが見つかりませんでした。