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오류를 찾을 수 없습니다.

관련 정보