我有一个循环设置来搜索数据文件,并使用数据文件的每一行作为参数执行命令。 PUBLISH参数可以有空格,这就是为什么我有不同的转义。我希望能够将循环的每次迭代输出stderr和stdout到另一个日志文件:
while read VARIABLE1 PUBLISH LOGFILENAME
do
/home/script_name -switch $VARIABLE1 -switch2 \"$PUBLISH\" >> /log/$LOGFILENAME 2>&1
done < $INPUTFILE
要创建的日志文件LOOKS - 也就是说 - 当我执行ll并且它看起来有大小时我可以看到它 - 但是当我尝试捕获文件时 - 我得到了:
# ll logfile
-rw-r--r-- 1 root root 3205 2014-10-15 12:52 logfile
# pg logfile
pg: logfile: No such file or directory
# cat logfile
cat: logfile: No such file or directory
# read -r logfile
^C (ctrl-c'd after no display)
# file logfile
logfile: ERROR: cannot open `logfile' (No such file or directory)
命令运行正常 - 但我无法创建日志文件。如果我删除重定向字符串(&gt;&gt; / log / $ LOGFILENAME 2&gt;&amp; 1) - COMMAND输出就会很好地进入屏幕。我正在执行脚本并以root身份读取日志文件 - 因此权限不应成为问题。
答案 0 :(得分:0)
感谢n.m.谁让我走上正轨我将输出文件名更改为硬编码名称并且它有效 - 我能够看到日志文件并将其分页。我回去查看原始的$ INPUTFILE,发现LOGFILENAME变量中的变量名后面有一个SPACE。