简单脚本的问题

简单脚本的问题

我在 AIX 中遇到一个脚本问题,但我找不到错误。我想在两个目录之间复制文件,但首先检查这些目录是否存在。我正在做的是这样的:

PATH=/home/fede/
PATH2=/home/prueba/
if [ -d $PATH ];
then
find $PATH -type f -exec cp {} $PATH2 \;
        echo "se copiaron los archivos correctamente"
else
        echo "no existe"
fi

但我收到了这条消息:./scriptTB[5]: find: not found. se copiaron los archivos correctamente。最后一行用西班牙语写着“文件已正确复制”。脚本的名称是scriptTB

我之前需要放什么东西吗find?看来问题出在 find

答案1

$PATH是一个默认环境变量,它告诉您的系统在哪里可以找到其程序二进制文件(例如find您尝试使用的程序),因此您应该为该变量使用不同的名称。我敢打赌您正在覆盖系统的$PATH,现在您的系统找不到该find程序。试试这个,看看是否有效。

答案2

PATH恰好是 shell 用于定位可执行文件的环境变量。如果取消设置或更改它,shell 可能找不到诸如find或 之类的命令cp

如果在脚本中使用小写变量名会更好。它们与重要环境变量发生冲突的可能性较小。

在这种情况下,您可以使用source_dirtarget_dir,例如,它的另一个好处是为读者提供一些文档。

相关内容