我正在开发一个项目,我需要对某些文件进行排序。我有工作流程,作为工作执行,每周安排一次或两次。但主要的问题是当我从我自己的主机执行相同的排序命令时,它不会给出任何错误。
我从我自己的主机执行的命令:
sort -k2,2 -T=${TMP_DIR} $1 > $2
On runtime all the **$ variables** are given path provided as arguments.
但是当我通过作业调度程序在生产主机上执行时,会出现以下错误:
sort: cannot create temporary file in `=': No such file or directory
执行命令时:
sort -k2,2 -T $ {TMP_DIR} $ 1> $ 2
在我自己的主机和生产主机上执行刚刚卡住。
仅供参考:这个没有“=”的命令在同一个包的另一个脚本中运行良好:这里使用的命令是:
join \<(sort -u -k1 -T ${TMP_DIR} ${INPUT_FILE_1}) \<(sort -u -k1 -T ${TMP_DIR} ${INPUT_FILE_2}) \> ${OUTPUT_FILE}";
是否与 -ka,a和-ka 选项有关?
作业计划程序正在以作为系统帐户执行作业(runas用户是某个系统帐户)。
我已确保复制目录及其创建目录 chowned 至系统帐户
正在排序的文件还具有 777权限 临时目录是通过代码本身创建的,因此系统帐户是其所有者!!
为什么会发生这种奇怪的事情?
我对sort命令及其解决方案的 -T选项更加好奇,而且它的表现非常奇怪。