gpt4 book ai didi

bash - cron 作业-ack : command not found

转载 作者:行者123 更新时间:2023-12-02 01:02:44 29 4
gpt4 key购买 nike

我写了一个 bash 脚本来识别文件中是否存在某个字符串,然后将文件名输出到“noString.txt”的“hasString.txt”。我正在使用 ack -i 'mystring' 'searchDir' 来查找我要查找的内容。

奇怪的是,当我通过终端手动调用脚本时,它运行良好,但是当 cron 调用脚本时,我得到以下错误消息输出:

~/sourceDir/script.sh:第 30 行:ack:找不到命令

为什么手动调用可以,cron调用找不到ack命令?


编辑:添加相关代码和cron文件

Lookout 脚本 - 确定是否有任何文件要处理。

    if [[ $(ls -A ${PWD}/*.zip) ]]; then
while [ $different -eq 1 ]; do
du -h 1> $compare1
ls -laR >> $compare1
sleep 25s
du -h 1> $compare2
ls -laR >> $compare2

if cmp $compare1 $compare2 ; then
mkdir -p $LOGAREA
mkdir -p $workarea/zip/unzip
touch $LOG
touch $ERRORLOG
sleep 2s
source ~/Desktop/Scripts/readfolderfiles.sh $drop
mv *epub $workarea
rm $compare1
rm $compare2
bash ~/Desktop/Scripts/Page_Label/script/searchString.sh
different=0
else
echo
fi
done 1> $LOG 2> $ERRORLOG
else
rm ~/Desktop/page_labels.running
rm $drop/page_labels.running
fi

识别并报告脚本 - 生成顶部提到的输出

for files in *.zip; do
#move and unzip the files
mv $workarea/$files $workarea/zip/unzip/${files%.epub}.zip
sleep 2s
unzip zip/unzip/*.zip -d zip/unzip/${files%.epub}
mv zip/unzip/*.zip zip
sleep 2s
cd $workarea/zip/unzip
for dir in *; do
# Search the files for the searchString
if ack --ignore-case 'searchString' $dir; then
echo $dir >> $drop/Has_searchString.txt
echo
rm -r $dir
sleep 5s
else
echo $dir >> $drop/No_searchString.txt
echo
rm -r $dir
sleep 5s
fi
done
cd $workarea
done

计划文件

#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

#### Backup Files
* * * * 1,2,3,4,5 bash ~/Desktop/Scripts/searchScript.sh &> /dev/null;

最佳答案

您需要在您的 cron 作业中设置 PATH 环境变量。所以将它添加到 cron 文件的顶部:

 #!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

注意:还要添加#!/bin/bash,这样就不必再添加 shell 环境变量了。

关于bash - cron 作业-ack : command not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26589069/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com