我正在执行脚本并在以下代码中收到错误。它在RedHat上工作正常,但在AIX7.1中却出错:
while read line
do
read -A arr <<< $line
ct="$(perl -e 'print time()')"
x=${arr[6]}
y="$(((ct-x)/60/60))"
if [ $y -gt 48 ];then
echo "${arr[0]} ${arr[3]} ${arr[5]} ${arr[6]}" >> $longrunning_jobs_tmp1
fi
done < $active_jobs_tmp4
我也正确定义了变量,但仍然遇到以下问题:
Job_Monitoring_Test.ksh[121]: 0403-057 Syntax error at line 123 : `<' is not expected.
答案 0 :(得分:0)
在为ksh88
编写的AIX上,您正在AIX上运行带有ksh93
的脚本。
尝试将其shebang设置为:
#!/bin/ksh93
...
如果ksh93
不可用,也许dtksh
可行。否则,您需要将脚本移植到bash
。
编辑:
如果问题是使用<<<
语法,则可以替换
read -A arr <<< $line
由:
read -A arr <<%EOF%
$line
%EOF%
答案 1 :(得分:0)
您有/可以在系统上安装Bash吗?
使用shebang #/bin/bash
可能会解决很多问题
您仍然需要查看不同命令中使用的选项,例如find
(mtime),date
和sed
(用于就地编辑的-i选项),但Bash特定的构造将起作用。< / p>