我正在使用RedHat(rhelsvrbase64-6.2)版本。 我写了一个incron作业,将文件(即utf-16le格式)转换为UTF-8格式。
When i am running my job, It is creating multiple UTF-8 copies of my file.
My incrontab script is as follows:
**/home/sap/SRMArchive/incronTest IN_CLOSE_WRITE /usr/local/bin/test.sh $@ $#**
test.sh
**#!/bin/bash
echo "hi">>/var/log/my.log
echo $1>>/var/log/my.log
echo $2>>/var/log/my.log
file -bi $1/$2 >>/var/log/my.log
iconv -f utf-16le -t UTF-8 $1/$2 > $1/UTF8_$2**
When i am dropping any file to my '/home/sap/SRMArchive/incronTest' folder, The output i am getting is number of files named as follows :
UTF8_myFile.txt
UTF8_UTF8_myFile.txt
UTF8_UTF8_UTF8_myFile.txt
UTF8_UTF8_UTF8_UTF8_myFile.txt
.........
........
Thanks in advance
答案 0 :(得分:0)
在这一行:
iconv -f utf-16le -t UTF-8 $1/$2 > $1/UTF8_$2**
您正在使用incron
观看的同一目录中创建输出。当iconv
完成文件写入后,您将获得一个新的IN_CLOSE_WRITE
事件,该事件会使用输出文件的名称触发您的脚本......等等。
理论上,你应该从中获得无限循环。
解决方案是(a)在不同目录中生成输出,或者(b)让脚本忽略以UTF8_
开头的文件上的事件。