Visit Our UNIX and Linux User Community


Solaris scripting problem with ksh88


 
Thread Tools Search this Thread
Operating Systems Solaris Solaris scripting problem with ksh88
# 8  
Old 09-10-2014
Might I also suggest that using @ & # is a bad idea. Some operating systems and perhaps applications do not accept these characters all the time. HP-UX, for one, treats the @ as an end-of-field and therefore the password is truncated at that point.

I'm not sure what Solaris may do at various versions, or what your application may do if you are passing this password into that instead.



Robin
# 9  
Old 09-15-2014
Quote:
Originally Posted by gfroute
It works properly if I run the commands manually or if I put the commands in a file:
Code:
./test.ksh
9
31
25
38
72
91
81
52
51

If I add "#!/bin/ksh" at the beginning of my script, I get this error:
Code:
./test.ksh
./test.ksh[5]: ++I < 10: bad number

Here's the inside of the script
Code:
#!/bin/ksh
MATRICE="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@;:[].{}+=<>#|()^&_0123456789"
unset I
PWLEN=10
while ((++I < $PWLEN)); do echo $((RANDOM%${#MATRICE})); done

ksh88 does not have the full implementation of (( )).
You can rewrite the bash-3/ksh93 style
Code:
I=0; while ((++I < PWLEN)); do echo $I; done

like this
Code:
I=1; while ((I < PWLEN)); do echo $I; ((I=I+1)); done

---------- Post updated at 05:09 PM ---------- Previous update was at 04:40 PM ----------

Quote:
Originally Posted by gfroute
Hello,

I want to pick a random element from a list, and created these 2 lines, which work very well in ksh93. Unfortunately, I get this "bad substitution" message in ksh88.

I'm wondering if there's an equivalent to the second line of my script.. or if I have to install ksh93 to make this work.

Here are my lines:

Code:
MATRICE="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@;:[].{}+=<>#|()^&_0123456789"

PASSWD="${MATRICE:$(($RANDOM%${#MATRICE})):1}"

Thanks in advance
A straight translation:
Code:
PASSWD=`expr "$MATRICE" : ".\{$(($RANDOM%${#MATRICE}))\}\(.\)"`

Expert question: why can the ` ` not be a $(( ))?

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. OS X (Apple)

FFT for the AMIGA through ksh88 shell.

I don't know if anyone is interested but I have been meddling with FFT for the AMIGA. (Sadly we AMIGAns don't have these luxuries through any scripting language. Below is a Python snippet that uses the builtin 'cmath' module to work with the lowly Python 2.0.1 for the AMIGA. It is part of a... (0 Replies)
Discussion started by: wisecracker
0 Replies

2. Shell Programming and Scripting

FTP script in ksh88

Hi I tried the following code to FTP the files from test server to dev #!/bin/ksh DST=/home/files cd $DST ftp -inv 'test_serv101' << EOF quote USER test quote PASS test # File Path on test server cd /etc/home/Or_Files ascii mget curMonth* $DST quit EOF when i try the above code it... (4 Replies)
Discussion started by: smile689
4 Replies

3. Shell Programming and Scripting

Comparing Strings in ksh88

Hi I tried the following string comparison script in Ksh88 #!/bin/ksh str1='aC' str2='ABC' if then echo "Equal" else echo "Not Equal" fi Though str1 and str2 are not equal the script output says Equal . Please correct me Thanks (2 Replies)
Discussion started by: smile689
2 Replies

4. Shell Programming and Scripting

[ksh88 and awk] Number of fields with a value.

Hi, With: # VALUES="one~two~~~" # echo $VALUES | awk 'BEGIN {FS="~"} {print NF}' 5 I can determine the number of fields. How to determine the number of fields with a value ? In this case 2. Thanks in advance, ejdv (6 Replies)
Discussion started by: ejdv
6 Replies

5. Shell Programming and Scripting

namerefs alternative for KSH88

I have to use KSH88, so going to BASH, perl etc. is not an option. Below is a much simplified verison of what I am doing (aka ignore my cut command and i not increasing) :) i=1 BIGSTRING="one two three four five six seven eight" while ]; do typeset "STRING$i=`echo $BIGSTRING| cut -d' '... (8 Replies)
Discussion started by: nitrobass24
8 Replies

6. Shell Programming and Scripting

Download AT&T ksh88 ?

Hello, I need ksh88 for my linux system - and I don't want pdksh. Possible to get original ksh 88 binaries or source ? (I don't need ksh93 which is available) thanks Vilius (1 Reply)
Discussion started by: vilius
1 Replies

7. Shell Programming and Scripting

Substring in ksh88 ?

Hello, ksh88 doesn't support ${var:x:y}. Any alternatives to get substring ? thanks Vilius (2 Replies)
Discussion started by: vilius
2 Replies

8. Shell Programming and Scripting

ksh88 or ksh93

Hi all! Does anybody know how can I check if any UNIX installation has implemented ksh88 or ksh93? Thanks in advance. NÚstor. (3 Replies)
Discussion started by: Nestor
3 Replies

9. Shell Programming and Scripting

ksh88 - curses

I was wondering if there is anyway to use the curses library with ksh88. I saw Shell Curses function library which says I can use /usr/local/functions/shellcurses on ksh93 but I am on ksh88. I am on a HP-UX box. (0 Replies)
Discussion started by: IMTheNachoMan
0 Replies

10. Solaris

Problem in for loop of shell scripting in solaris

Hi below is my script for((i=0;i<=$TOTAL;i++)) do echo "IP's created are $s1.$s2.$s3.$s4" s4=`expr $s4 + 1` done where s1,2,3,4 are input varibles below error occurs while running the script syntax error at lin 11: '(' unexpected ... (12 Replies)
Discussion started by: krevathi1912
12 Replies

Featured Tech Videos