所以我做了一个 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/bash
shebang 似乎可以纠正它。
我只是忘记了,>>
只有重定向stdout
,因此找不到任何错误。