我参与了将包含数百个ksh脚本的系统从AIX,Solaris和HPUX移植到Linux的过程.我在ksh在两个系统上的行为方式遇到了以下不同之处:
#!/bin/ksh
flag=false
echo "a\nb" | while read x
do
flag=true
done
echo "flag = ${flag}"
exit 0
Run Code Online (Sandbox Code Playgroud)
在AIX,Solaris和HPUX上,Linux上的输出为"flag = true",输出为"flag = false".
我的问题是:
其他说明:
下表总结了系统问题:
uname -s uname -r which ksh ksh version flag =
======== ======== ========= =========== ======
Linux 2.6.9-55.0.0.0.2.ELsmp /bin/ksh PD KSH v5.2.14 99/07/13.2 false
AIX 3 /bin/ksh Version M-11/16/88f true // AIX 5.3
/bin/ksh93 Version M-12/28/93e true
SunOS 5.8, 5.9 and …
Run Code Online (Sandbox Code Playgroud)