그래서 디렉토리 번호가 포함된 파일을 읽고 그 파일에서 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
오류를 찾을 수 없습니다.