Sponsored Content
Top Forums Shell Programming and Scripting Simple Variable substitution in ksh not working Post 302961000 by Don Cragun on Monday 23rd of November 2015 02:53:41 AM
Old 11-23-2015
mukesh.lalwani,
With any Korn shell, you can use arrays with a numeric subscript for subscripts from 0 to about 2047. With ksh93 and with bash you can use numeric subscripts with larger values or with string valued subscripts. The syntax is:
Code:
$ i=1
$ dbname[1]="tree"
$ echo "${dbname[$i]}"
tree
$

or for multiple array elements:
Code:
$ dbname=("forest" "tree")
$ for ((i = 0; i < ${#dbname[@]}; i++))
> do	printf 'dbname[%d]="%s"\n' "$i" "${dbname[$i]}"
> done
dbname[0]="forest"
dbname[1]="tree"
$

Or, with any shell based on Bourne shell syntax, you can use eval as shown in the link you referenced. Note that eval can be a security risk if any of the code that you are feeding to eval is supplied by a user. But, eval is generally safe if all of the strings being evaluated by eval are hardcoded into your script.

RTY,
Code:
$ echo $dbname$i

prints whatever $dbname expands to followed by whatever $i expands to not to the contents of the variable named by dbname followed by the expansion of $i.

And:
Code:
$ echo ${dbname$i}
ksh: syntax error: `$' unexpected
$

doesn't work either.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

ksh substitution

Hello, I thought it was possible to use several time a #! entry on a script but it doesn't seems to work. My need is to have a part of a ksh script without substitution so it would look like #!/bin/ksh -- first part --- #!/bin/ksh -f -- part without substitution -- #!/bin/ksh --... (2 Replies)
Discussion started by: solea
2 Replies

2. Shell Programming and Scripting

KSH variable substitution

Hi folks Please let me know if anyone knows how to handle this. My KSH script -> testscript.ksh cmd=$1 ENV="devl" echo $cmd This is how I call the script ./testscript.ksh 'ps -ef | grep br$ENV' How do I get this to print the below text i.e $ENV should be substituted with the value... (5 Replies)
Discussion started by: tipsy
5 Replies

3. AIX

Substitution not working in ksh

Following code is working in bash but not in ksh. Can someone please send me an alternative? #!/bin/ksh fname="EOA.dmp" echo $fname logname=${fname/.dmp/.log} echo $logname I am getting below error in ksh "testcmd: logname=${fname/.dmp/.log}: 0403-011 The specified substitution is not... (2 Replies)
Discussion started by: arsheshadri
2 Replies

4. Solaris

Substitution not working in ksh

Hi, Following code is working in bash but not in ksh. Can someone please send me an alternative? #!/bin/ksh fname="EOA.dmp" echo $fname logname=${fname/.dmp/.log} echo $logname I am getting below error in ksh "testcmd: logname=${fname/.dmp/.log}: 0403-011 The specified substitution... (3 Replies)
Discussion started by: arsheshadri
3 Replies

5. Shell Programming and Scripting

Sed variable substitution when variable constructed of a directory path

Hello, i have another sed question.. I'm trying to do variable substition with sed and i'm running into a problem. my var1 is a string constructed like this: filename1 filerev1 filepath1 my var2 is another string constructed like this: filename2 filerev2 filepath2 when i do... (2 Replies)
Discussion started by: alrinno
2 Replies

6. Shell Programming and Scripting

variable substitution in ksh

Hi I have a variable BIT1 which holds some value. Is there a way to retrieve the value of this variable indirectly via another variable, lets say SUBSET_BIT_NUM=1, so the call will look something like this: sundev1 $ echo ${BIT${SUBSET_BIT_NUM}} ksh: ${BIT${SUBSET_BIT_NUM}}: bad substitution ... (3 Replies)
Discussion started by: aoussenko
3 Replies

7. Shell Programming and Scripting

Simple sed variable substitution

Give the code: set line = 2 set year = `sed -n '2p' file while ($line < 500) echo $line > f.txt @ line = $line + 1 end How do I utilize the variable $line in the code instead of the number 2. I'm using this in a while loop and counter. I've tried quoting it, double/single... (1 Reply)
Discussion started by: wxornot
1 Replies

8. Shell Programming and Scripting

bad substitution error in ksh

Hello, In bash I can use the following: TMP=12345 MID=${TMP:1:1} the expected result is: 2 but when using KSH I'm getting a ''bad substitution" error. What is the correct syntaxin ksh? Thanks (2 Replies)
Discussion started by: LiorAmitai
2 Replies

9. Shell Programming and Scripting

Using Sed to do a substitution inside ksh

I'm trying to do an ls from inside of a ksh script. I loop through the results one line at a time and attempt to do a substitution using sed to convert YYYYMMDD from the older files into the newer files. Basically sometimes the ETL load runs over midnight and half the files are off by one day... (3 Replies)
Discussion started by: Calbrenar
3 Replies

10. Shell Programming and Scripting

A simple variable subst is not working

Hi what i want: listing files in a special range ls -lrt 20120601{05..06}* ... -rw-rw-r-- 1 imp imp 279 1. Jun 07:51 201206010550 -rw-rw-r-- 1 imp imp 279 1. Jun 07:01 201206010600 -rw-rw-r-- 1 imp imp 279 1. Jun 07:11 201206010610 -rw-rw-r-- 1 imp imp 279 1. Jun 07:21... (1 Reply)
Discussion started by: IMPe
1 Replies
DROPLANG(1)						  PostgreSQL Client Applications					       DROPLANG(1)

NAME
droplang - remove a PostgreSQL procedural language SYNOPSIS
droplang [ connection-options... ] langname [ dbname ] droplang [ connection-options... ] --list | -l dbname DESCRIPTION
droplang is a utility for removing an existing programming language from a PostgreSQL database. droplang can drop any procedural language, even those not supplied by the PostgreSQL distribution. Although backend programming languages can be removed directly using several SQL commands, it is recommended to use droplang because it performs a number of checks and is much easier to use. See DROP LANGUAGE [drop_language(7)] for more. OPTIONS
droplang accepts the following command line arguments: langname Specifies the name of the backend programming language to be removed. [-d] dbname [--dbname] dbname Specifies from which database the language should be removed. The default is to use the database with the same name as the current system user. -e --echo Displays SQL commands as they are executed. -l --list Shows a list of already installed languages in the target database (which must be specified). droplang also accepts the following command line arguments for connection parameters: -h host --host host Specifies the host name of the machine on which the server is running. If host begins with a slash, it is used as the directory for the Unix domain socket. -p port --port port Specifies the Internet TCP/IP port or local Unix domain socket file extension on which the server is listening for connections. -U username --username username User name to connect as -W --password Force password prompt. ENVIRONMENT
PGDATABASE PGHOST PGPORT PGUSER Default connection parameters. DIAGNOSTICS
Most error messages are self-explanatory. If not, run droplang with the --echo option and see under the respective SQL command for details. Check also under psql(1) for more possibilities. NOTES
Use createlang(1) to add a language. EXAMPLES
To remove pltcl: $ droplang pltcl dbname SEE ALSO
createlang(1), DROP LANGUAGE [drop_language(7)] Application 2002-11-22 DROPLANG(1)
All times are GMT -4. The time now is 02:37 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy