Bash
使用 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
問題是由於某種原因它永遠不會在一段時間內執行。at 命令不能讀取文件嗎?因為我嘗試使用帶有數字增量的 for 循環而不是從文件中讀取,但它也沒有在其中執行……
當我自己執行該腳本時,它可以完美執行。我只需要能夠在一夜之間啟動它…
沒關係,我只是愚蠢。我認為它使用錯誤的 bash 執行,因此
[[
無法辨識。添加
#!/bin/bash
shebang似乎可以糾正它。我只是忘記了
>>
只有重定向stdout
,因此找不到任何錯誤。