我有一个脚本,它将std out / std err重定向到如下:
SCRIPTS=/test/scripts
LOG=/test/log
echo $SCRIPTS
echo $LOG
$SCRIPTS/dmm_algo_ofac_daily_sched.ksh >> $LOG/test12.log 2>&1
此脚本无法展开$SCRIPTS
和$LOG
如果我将其替换如下:
/test/scripts/daily_sched.ksh >> /test/log/test12.log 2>&1
抱怨如下:
: bad file unit numberd/test.ksh: line 33: 1
此外,我无法从保存它的目录中调用脚本。如果我做
./test.ksh
它错误地说找不到文件。我可以通过ksh /test/sched/test.ksh
执行它。
有人可以帮我这些吗?提前谢谢。
答案 0 :(得分:4)
我几乎可以肯定问题是因为DOS / Windows行结尾
您收到的错误消息是因为回车而覆盖自己。您可以使用dos2unix
修复文件。
答案 1 :(得分:1)
将魔术#!/bin/ksh
添加到第一行以直接调用,而无需在命令行上命名解释器。
答案 2 :(得分:0)
我会疯狂地推测你的根本原因与重定向无关。
您展示的脚本是/test/sched/test.ksh还是/test/scripts/test.ksh?你确定吗?