Sponsored Content
Top Forums UNIX for Dummies Questions & Answers [Solved] Variable Name as a Prompt Post 302631381 by gary_w on Friday 27th of April 2012 09:15:51 AM
Old 04-27-2012
WARNING! eval when used like this can be dangerous. See a few posts below for more info!

Are you trying to do something like this:
Code:
#!/bin/ksh

dir="/usr/bin"

VariableName()
{
        echo "***************************************"
        echo "Please Enter Variable Name : "
        read Read_VariableName
}

VariableName
eval echo \$$Read_VariableName


exit 0
$ x
***************************************
Please Enter Variable Name :
dir
/usr/bin
$

eval first replaces $Read_VariableName with "dir", then echo sees "$dir".

Last edited by gary_w; 04-27-2012 at 03:32 PM.. Reason: Added warning about eval being dangerous when used like this.
This User Gave Thanks to gary_w For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

[Solved] trying to install pecl without having it prompt for a yes m

I want to install pecl from a single command without it asking me for a response of "yes" or "no" to finish the install... -------------------------------------------------------------------------- # pecl install pecl_http downloading pecl_http-1.7.0.tgz ... Starting to download... (1 Reply)
Discussion started by: sjsotelo
1 Replies

2. Shell Programming and Scripting

Manipulating a variable using sed (solved)

Hi, My variable has value as this: tvar1="bool_risk_enabled" Boolean "true" Now I need to replace this true with false. Which is the best way to do this? Can we do this with sed command? Please help me. ---------- Post updated at 05:23 PM ---------- Previous update was at 05:00 PM... (2 Replies)
Discussion started by: pravintse
2 Replies

3. UNIX for Dummies Questions & Answers

[Solved] Help needed to have changing value to the command prompt string variable PS1

Hi, I am using git bash terminal window to do git operations. I have set the prompt string variable PS1 in the ~/.bashrc file as follows: export PS1=" " This is intended to show me the current git branch's name which is active as part of the prompt string. But, the problem is when I do a git... (2 Replies)
Discussion started by: royalibrahim
2 Replies

4. Shell Programming and Scripting

zsh, prompt, variable expansion, ANSI color sequences

Hi! I am using latest ZSH and I have setopt prompt_subst I have a global hash array variable which contains some color definitions with color names as keys and 256-color ANSI codes (with %{ and %}) as values, eg %{\ePS1="$FG Hello World (%M) > " or PS1=$'$FG Hello World (%M) > ' then it... (3 Replies)
Discussion started by: galanom
3 Replies

5. Shell Programming and Scripting

[Solved] reassign value to variable

Hi, Please let me know how to reassign value to a variable.The calling script is passing parameter as HAT_DIV but I like to pass HAT DIV ( two words) to DIV parameter.These are .ksh scripts. # access to target - (user passwd sid) must be provided. USER=$1; ... (5 Replies)
Discussion started by: sandy162
5 Replies

6. Shell Programming and Scripting

[Solved] Running scripts in parallel that issue prompt

Hi all - I am totally stuck here :wall I have been asked to write a shell script that does a few little things and then reads from a config file and kicks off an instance of another script, say scriptB.ksh for each line in the config file. These should all be run in parallel. This is all fine but... (2 Replies)
Discussion started by: sjmolloy
2 Replies

7. Shell Programming and Scripting

[Solved] Prompt problem while using mget to ftp

I am writing a scritp in which first step is to get some files from a server. I am using mget to do that. here is my FTP code ... HOST="XXX.XXX.com" 28 ftp -inv $HOST <<END &> $FTP_LOG 29 quote USER $USER 30 quote PASS $PASWD 31 cd log 32 prompt off 33 binary 34 mget... (0 Replies)
Discussion started by: shashidhar
0 Replies

8. Shell Programming and Scripting

[Solved] How to increment and add variable length numbers to a variable in a loop?

Hi All, I have a file which has hundred of records with fixed number of fields. In each record there is set of 8 characters which represent the duration of that activity. I want to sum up the duration present in all the records for a report. The problem is the duration changes per record so I... (5 Replies)
Discussion started by: danish0909
5 Replies

9. Shell Programming and Scripting

[Solved] Help with Overriding a Prompt in UNIX/Java

I am executing a shell script which contains a jar call to an external java package for which I don’t have a read access to. The external package was written in such a way that whenever we make a java –jar call to the package, it shows a prompt on the console asking if we want to continue or no... (1 Reply)
Discussion started by: Harry1302
1 Replies

10. UNIX for Dummies Questions & Answers

How to prompt user to define a variable?

Hi everyone, Is it possible to define blank vaianbles and prompt user to fill them during the script execution? A very simple example: INPUT= OUTPUT= cut -f1-4 $INPUT | sed 's/hello/goodbye/g' | sort -uV > $OUTPUTThank you in advance! Best wishes (2 Replies)
Discussion started by: lsantome
2 Replies
GETOPTS(3)						  libbash getopts Library Manual						GETOPTS(3)

NAME
getopts -- libbash library for command line parameters parsing SYNOPSIS
$retval getopt_long <Instructions> <Parameters> DESCRIPTION
This is a documentation for libbash getopts library, that implements getopt_long function for bash(1). For documentation of bash getopts function, please see getopts(1) ( getopts(1posix) on some systems). Here is a table for reference: getopts(1) (or 1posix on some systems) implemented by bash getopts(3) implemented by libbash. getopt(1) implemented by getopt utils (part of util-linux) getopt_long(1) implemented by libbash and installed to section 1 instead of 3 to prevent collision with C man pages. getopt(3) implemented by GNU C library. getopt_long(3) implemented by GNU C library. I have also seen separate getopt utility which part of util-linux package. The getopt_long function parses the command line arguments. It uses Instructions as the rules for parsing the Parameters. The Instructions A string that specifies rules for parameters parsing. The instructions string is built of a group of independent instructions, separated by a white space. Each instruction must have the following structure: -<SingleLetter>|--<MultiLetter>-><VariableName>[:] This structure contains three parts: -<SingleLetter> This is the parameter single-letter sign. For example -h. --<MultiLetter> This is the parameter's corresponding multi-letter sign. For example --help. <VariableName>[:] This is the name of the variable that will contain the parameter value. For example: HELP. The Variable name can represent one of two variables types: Flag variable (not followed by ':') In this case, it will hold the value 1 if 'on' (i.e. was specified on command line) and will not be defined if 'off'. Value variable (followed by ':') In this case, the value it will hold is the string that was given as the next parameter in the Parameters string (Separated by white-space or '=' ). If input contains more then one instance of the considered command line option, an array of the given parameters will be set as the value of the variable. The Parameters The Parameters are simply the parameters you wish to parse. RETURN VALUE
This function returns a string that contains a set of variables definitions. In order to define the variables, this string should be given as a parameter to eval function. This value is returned in the variable $retval. EXAMPLES
Parse command line parameters looking for the flags -h | --help and -v | --version and for the value -p | --path : getopt_long '-h|--help->HELP -v|--version->VERSION -p|--path->PATH:' $* eval $retval In this example, for the parameters --help --path=/usr/ the variables that will be created are: HELP=1 PATH=/usr/ for the parameters --help --path=/usr --path=/bin the variables that will be created are: HELP=1 PATH=(/usr /bin) BUGS
Values must not contain the string `__getopts__'. This string will be parsed as a single white-space. A value should not start with an already defined multi-letter sign. If such a value exists, it will be treated as the equivalent singe-letter sign. This bug only accures when using a single-letter sign, or a multi-letter sign that are not followed by a `='. For example: If we have a script named `foo', and we parse the parameters `-d|--dir:' and `-f|--file:', then foo -d --file and foo --dir --file will not work foo --dir=--file will work. AUTHORS
Hai Zaar <haizaar@haizaar.com> Gil Ran <gil@ran4.net> SEE ALSO
ldbash(1), getopt_long(1), getopts(1), getopt(1), libbash(1), getopt(3), getopt_long(3) Linux Epoch Linux
All times are GMT -4. The time now is 02:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy