Version M-11/16/88f


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Version M-11/16/88f
# 1  
Old 02-18-2019
Version M-11/16/88f

if below notation is not suport byt KSH version M-11/16/88f
what is the alternative i can use

Code:
FILE_PREFIX=${fileNAme:$len:4}: 0403-011 The specified substitution is not valid for this command.




Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by RudiC; 02-18-2019 at 03:53 AM.. Reason: Added CODE tags.
# 2  
Old 02-18-2019
Quote:
Originally Posted by ded325
if below notation is not suport byt KSH version M-11/16/88f
what is the alternative i can use

FILE_PREFIX=${fileNAme:$len:4}: 0403-011 The specified substitution is not valid for this command.
You can use these:

Code:
${var#<regexp>}
${var##<regexp>}
${var%<regexp>}
${var%%<regexp>}

Since you want a "substring"-function you may be interested in knowing you can nest these expansions like i.e. this:

Code:
${var##{var%%??}}      # only the last 2 characters of any string
${var%%{var##??}}      # only the first 2 characters of any string

You can use these or similar for subsequent expansions, i.e.:

Code:
${var:2:3}      # substring in ksh93-notation to emulate
var=${var##??}   # cut off first two characters
${var%%${var##???}}   # display first 3 characters of resulting string

From the version string of your ksh88 i guess you use AIX. You have a ksh93 available per default in /usr/bin/ksh93.

I hope this helps.

bakunin

Last edited by bakunin; 02-18-2019 at 12:07 PM.. Reason: typo
These 2 Users Gave Thanks to bakunin For This Post:
# 3  
Old 02-18-2019
Quote:
Originally Posted by bakunin
You can use these:

Code:
${var#<regexp>}
${var##<regexp>}
${var?<regexp>}
${var??<regexp>}

Since you want a "substring"-function you may be interested in knowing you can nest these expansions like i.e. this:

Code:
${var##{var%%??}}      # only the last 2 characters of any string
${var%%{var##??}}      # only the first 2 characters of any string

You can use these or similar for subsequent expansions, i.e.:

Code:
${var:2:3}      # substring in ksh93-notation to emulate
var=${var##??}   # cut off first two characters
${var%%${var##???}}   # display first 3 characters of resulting string

From the version string of your ksh88 i guess you use AIX. You have a ksh93 available per default in /usr/bin/ksh93.

I hope this helps.

bakunin

how to enable /usr/bin/ksh93
can it be refer only to script
#!/usr/bin/ksh93 etc
# 4  
Old 02-18-2019
Quote:
Originally Posted by ded325
how to enable /usr/bin/ksh93
can it be refer only to script
#!/usr/bin/ksh93 etc
As with any other command interpreter you can specify it in the "shebang" line:

Code:
#!/usr/bin/ksh93

In fact you should do that always, not only for ksh93.

You can also start ksh93 on the command line for interactive use by issuing:

Code:
/usr/bin/ksh93

or, if /usr/bin is included in your PATH (which most probably is the case) just:

Code:
ksh93


I hope this helps.

bakunin
# 5  
Old 02-18-2019
Quote:
Originally Posted by ded325
how to enable /usr/bin/ksh93
can it be refer only to script
#!/usr/bin/ksh93 etc
Expanding a little bit on what bakunin has already said...
If a script's first line is:
Code:
#!/usr/bin/ksh93

and that script is made executable such as by:
Code:
chmod +x script_pathname

then whenever you run that script by invoking its name, it will be run by ksh93. Whether or not you do that, if you issue the command:
Code:
ksh93 script_pathname argument...

that will run script_pathname with the given command line arguments using ksh93 to interpret script_pathname no matter what any #! on the first line in that file might request be used as its interpreter as long as /usr/bin is in your PATH environment variable.

If you issue the command:
Code:
exec ksh93

your currently running shell will be replaced by an invocation of ksh93 and it will be used to interpret any interactive commands you issue in that terminal session until terminate that shell.

If you issue the command:
Code:
ksh93

and /usr/bin is in your PATH environment variable, you will start another shell running in the current shell execution environment and it will be used to interpret any interactive commands you issue until you terminate that shell (and then you'll resume the previous shell session.

If you issue the command:
Code:
chsh /usr/bin/ksh93

and it works, then the next time you login to your system, your login shell will be ksh93
and it will remain in place as your login shell on that system until you run chsh again.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Red Hat

OS version and Firmware version

Guys, How to find OS version and firmware version in LINUX? Like in AIX. uname -a will show me the version 5.3, 6.1,7.1. lsmcode -c will show me - system firmware image as SF240_417. What are the similar commands in Linux. I checked uname -a and cat /etc/release. uname... (1 Reply)
Discussion started by: ElizabethPJ
1 Replies

2. Shell Programming and Scripting

Copy a file from directroy/ prior version to the directory/ new version

How to copy a file from directroy/ prior version to the directory/ new version automatically. (4 Replies)
Discussion started by: roy1912
4 Replies

3. UNIX for Advanced & Expert Users

Advanced Search * View * Edit JAVA version to WORK in GLASSFISH Forum topic JAVA version

Would like to confirm the ff. I got confused actually with the version I needed to download that will work on glassfish 3.0.1 a. Debian Squeeze (HP DL360). Need to use java version6 On Debian, I did apt-get install sun-java6-jdk. So when I check it's java version "1.6.0_22" Java(TM) SE... (1 Reply)
Discussion started by: lhareigh890
1 Replies

4. Shell Programming and Scripting

version of OS

How to know the whether the system in IBM-AIX, or HP-UX or Sun Solaris? I have typed command "version" at the prompt and i got machine hardware: sun4us OS version:5.9 and more.... So is my system Sun Solaris Please let me know how can i find the OS (2 Replies)
Discussion started by: vasuarjula
2 Replies

5. Solaris

Migrate unix version 8 to version 9

i have a program writing in PRO C which currently running in unix version 8 tie with oracle 8i, but in the future company gonna migrate this OS to version 9. Anything i have to prepare for my PRO C program to run in unix version 9? or anything would that impact my program couldn't run well? what... (2 Replies)
Discussion started by: lsy
2 Replies

6. HP-UX

What is my Version

Hi, This is my HP-UX version, hpprod::root>uname -a HP-UX hpprod B.11.11 U 9000/800 1110164401 unlimited-user license hpprod::root> but I've already patch with, PHSS_30101 1.0 Support Tool Manager Dec 2003 PHSS_30170 B.11.11.18 ... (1 Reply)
Discussion started by: aldosfox
1 Replies

7. UNIX for Dummies Questions & Answers

What OS version am I on?

I'm trying to figure out the exact version of the AIX box I'm on. Like whether it's 5.1 or 5.2. I tried lsconf and smit but they didn't give the answer. Does anyone know a command that returns this value? I don't have root access. (3 Replies)
Discussion started by: rein
3 Replies

8. UNIX for Dummies Questions & Answers

VERSIOn

Hi, I would like to know, how do I findout what version UNIx OS my computer is using? Is there a particular command I type to do this? Please advise. Thanks (1 Reply)
Discussion started by: huhuloa
1 Replies

9. UNIX for Dummies Questions & Answers

version of OS

Hi , what is the command to find the version of OS running on a unix box? Thanks. (4 Replies)
Discussion started by: tselvanin
4 Replies

10. UNIX for Dummies Questions & Answers

what version am I using?

Hi Im new here and pretty new to Unix. Just a couple of questions How can I tell what version of Unix I'm running? and Also I hope this makes sence, when writting scripts/programmes does it matter what Im writting it in? ie what shell? Or is it just identical whatever shell Im... (1 Reply)
Discussion started by: Loaded Gun
1 Replies
Login or Register to Ask a Question