我在autosys上有一个命令作业,它应该执行一个bash脚本来重命名特定目录中的几个文件。我的脚本有这个:
for x in /opt/testing/fileToRename*.xls;
do mv "$x" "newName.csv";
done
当我直接从shell运行脚本时,一切正常,如果我接受命令直接从它运行的shell运行它,但当我尝试从我的工作的命令属性运行它时,这个工作只删除路径中的所有文件但不重命名文件。只是为了澄清,我在我的工作的owner属性中使用的用户与我在shell中使用的用户相同。
有人可以帮帮我吗?答案 0 :(得分:0)
使用新文件的完整路径,当autosys以您的用户身份运行脚本时,它不会在/opt/testing/
中运行它,很可能会将新文件放入用户的 $ HOME 或<代理的strong> $ HOME 目录,这就是为什么也许找不到newName.csv
的原因。 $ x 虽然包含文件的完整路径,所以删除有效,但重命名进入了其他文件夹。
for x in /opt/testing/fileToRename*.xls;
do mv "$x" "$(dirname "$x")/newName.csv";
done