使用 at 命令运行脚本并不完全有效

使用 at 命令运行脚本并不完全有效

所以我做了一个 bash 脚本,它读取一个包含目录号的文件,然后继续在它们上运行 pgloader。

我看起来像这样

#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

问题是由于某种原因它永远不会在 while 内运行。 at命令无法读取文件吗?因为我尝试使用带有数字增量的 for 循环,而不是从文件中读取,但它也不在其中运行...

当我自己运行该脚本时,该脚本运行良好。我只需要能够在一夜之间启动它......

答案1

没关系,我只是个傻子。我认为它使用了错误的 bash 运行,因此[[无法识别。

添加#!/bin/bashshebang 似乎可以纠正它。

我只是忘记了,>>只有重定向stdout,因此找不到任何错误。

相关内容