I first tried it on my NIM-Server, which happens to be also my script development system. Its version is basically 7.1 SP2. The first try is with the system shell (which is a ksh88), the second with the ksh93:
Code:
# lslpp -l bos.rte
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
bos.rte 7.1.2.15 COMMITTED Base Operating System Runtime
Path: /etc/objrepos
bos.rte 7.1.2.15 COMMITTED Base Operating System Runtime
# instfix -i | grep ML
All filesets for 7.1.0.0_AIX_ML were found.
All filesets for 7100-00_AIX_ML were found.
All filesets for 7100-01_AIX_ML were found.
All filesets for 7100-02_AIX_ML were found.
# Version M-11/16/88f
# cont=1
# if [ cont -eq 1 ]
>then
> echo "It works"
>fi
It works
# ksh93
# print - ${.sh.version}
Version M 93t+ 2009-05-01
# if [ cont -eq 1 ]
>then
> echo "It works"
>fi
It works
To be honest, i'm dumbfounded. I would have never expected that to run. Btw., this only works with integers, not with strings:
Code:
foo="abc"
if [ foo == abc ] ; then
print - "It works"
fi
will work as expected - which is: not work at all.
I got adventurous and tried to make the datatype more "stringy" and less "integerly":
Code:
typeset -RZ3 foo=1
# typeset -RZ3 foo="01"
print - $foo
if [ foo -eq 1 ] ; then
print - "It works"
fi
both of which works too - "foo" gets expanded.
The next thing i wondered was: is this specific to the AIX-ksh? In fact it is not. My colleague from the Linux-team tried it on a couple of our SLES11-servers and the ksh93 there worked the same. As it seems this is no specific feature of the AIX-shell but a common treat of the Korn shell.
I hope this helps.
bakunin
Thanks! wow so it's a korn shell issue and it behaves the same way in Linux. That's another important step..
We were completly shocked as well.
I'd like to share the story. This is what happened:
- First we found out that a lot scripts were "wrong", which is very strange because is a bank..
- We asked the bank, because we are outsourced, about this issue, and they said: you are right, those scripts are wrong. (lol)
- Then we decided we had to fix that so those scripts work properly in RHEL now. But.. wait! if there are a lot of scripts that didn't work for years, if you now make them work.. what will it happen???
So we agreed to fix it only and just only we had the approval of all the people in charge.
The next day we got an email saying: No, don't "fix" anything at the moment and just take notes of when you found something is wrong.
- As we kept going we saw more and more scripts.. hundreds.. so what's going on??
- Then someone saw the light and realised that those scripts actually work. I was so shocked and puzzled I said to my manager: alright! I'm leaving! lol
- So I don't know what kind of mess they have they don't even know about which script is working, etc........
- The thing is that now we haven't got any more time to do those changes manually so we had to think about how to do a massive change tool to change all scripts and make them have the preceding "$" in each case, whithout messing them all up, and messing all the work we had done already. This was a problem, because it seemed kind of easy, just a matter of finding the right regular expression.. but we found out that it didn't work properly and not only worked.. but it messed up some scripts.. so we ended up using a higher level language and, instead of using regular expressions, something far less elegant but more effective: searching for the lines where there were a variable wihtout a "$", filtering it into the unique lines, and then modifiy it manually and make a file with the origin and the target, separated with "@@@" (as an example). We used a higher level language to make the substitution in all scripts and it worked perfectly except for 200 scripts, with just scripts that didn't work.
We have been working monday to sunday lately..
hi all
i m working in a company ...and i have to migrate a C application running on SCO-UNIX to Red hat linux.
can anybody tell me what is the difference between C commands and shell scripting on SCO-UNIX and LINUX.
best regards
harsh (3 Replies)
I am trying to set some environment variables in a shell script which is written in Kshell. I am invoking this script in .profile. The problem is envirnment variables are set within the script but after exiting the script those are gone. I don't have any problem with If I have Kshell as my default... (0 Replies)
Dear All,
What points should i keep in mind while migrating scripts from HP-UX to AIX.
Are there any notes available for this?
cheers,
vishal (1 Reply)
Hi All,
I am currently facing new problem of migrating C(c language) application from AIX machine to Linux machine. We are using GCC to compile the source code..
But facing with the compilation issues, with lot of GCC C libs differing between AIX box to Linux box...
Pls help me... (1 Reply)
Hi All,
I am currently facing new problem of migrating C(c language) application from AIX machine to Linux machine. We are using GCC to compile the source code..
But facing with the compilation issues, with lot of GCC C libs differing between AIX box to Linux box...
Pls help me... (1 Reply)
We are changing our OS from HP-Unix 11 to Linux Red Hat. We have few k- shell, c - shell and sql scripts which are currently running under HP-Unix 11. Will these scripts work on LINUX as it is? or we need to do any code changes?IS there anyone who have done this kind of migration before?Thanks for... (2 Replies)
We have certain number of scripts that run on AIX server using ksh.
Now that we migrate these scripts to Linux servers.
We need to know what are the changes that we have to perform in script to make it compatible to run on Linux.
Say like in our Unix -AIX "print" command worked.
But that did... (6 Replies)
I'm New to AIX / VIOS
We're doing a FC switch cutover on an ibm device, connected via SAN.
How do I tell if one path to my remote disk is lost? (aix lvm)
How do I tell when my link is down on my HBA port?
Appreciate your help, very much! (4 Replies)
Hi,
recently we have migrated our current AIX server to Linux, we have lot of shell script, few of them are FTP scripts.
we have copied the complete AIX file system to linux 7.2 as it is.
could you please highlight what are the things we need to look into it .
in AIX we are using .netrc to... (3 Replies)