Sponsored Content
Top Forums Shell Programming and Scripting using variables in case statement Post 302366004 by cfajohnson on Wednesday 28th of October 2009 01:46:04 PM
Old 10-28-2009
Quote:
Originally Posted by jim mcnamara
Code:
lsmonth='Jan|Feb'
while read ans
do
	cmd=$(
		echo "
		case $ans in
		$lsmonth) echo do something
		;;
		*) echo do something else
		;;
		esac
		" )
eval $cmd
done


That will not work in most shells. The variable will be considered a single string, not as two choices.

And there's no need for command substitution:

Code:
case $ans in
     a|b) cmd='echo "do something"' ;;
     *) cmd='echo "do something else"' ;;
esac
eval "$cmd"

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

case statement

Hi all, is it possible to create a 'dynamic' case statement. ie select option in `ls` do case satement depending on results of the above `ls` done I hope I have explained this ok! Thanks Helen (1 Reply)
Discussion started by: Bab00shka
1 Replies

2. Shell Programming and Scripting

Case Statement

Can anyone please tell me why this wont work! Thanks so much! #!/bin/sh for file do case $file in *.*.*) echo Cannot have more than 1 dot exit ;; *'**'*) echo Cannot have more than 1 asterisk exit ;; *'*'*|?.) echo this is a target (19 Replies)
Discussion started by: Zeta_Acosta
19 Replies

3. Shell Programming and Scripting

case statement

hi all i'm writing a script and in it i need to prompt the user if the entered value is correct or not ,i wrote the following and its not working ,its executing the script even if i enter Y/N pls any help is appreciated echo "\nAre you sure you entered the right Destination Environment? y :... (5 Replies)
Discussion started by: bkan77
5 Replies

4. UNIX for Dummies Questions & Answers

If or Case Statement

I want to write a program with the following variables: a=7000 b=24000 c=613.8 The user can enter two words: Vivid or Blue for example. The challenge is that the user might not want to write the words the way they appear. The user can write V or v or vivid or Vivid or write Blue or blue, or B,... (1 Reply)
Discussion started by: Ernst
1 Replies

5. Shell Programming and Scripting

case statement

Hi all, I think i'm asking a sqtupid question here.. i'm using case sttament, what is the syntax or symbol for "or"? I thought was || here a quick sample of my case statment echo "Would you like to update your detail ?" read response case $response in ... (2 Replies)
Discussion started by: c00kie88
2 Replies

6. UNIX for Dummies Questions & Answers

CASE statement

Hi, I am writing a bash shell script. My script has a few user defined parameters. When the script runs the first thing it does is make sure that these parameters are valid. One of the parameters is called YEAR. A valid input for YEAR can be 1997-2000. One way I have come up with to ensure... (3 Replies)
Discussion started by: msb65
3 Replies

7. Shell Programming and Scripting

help with case statement

I am writing a script to pull diskspace information from our servers. Here is the script that I wrote: #!/bin/ksh for host in `cat /oper/hosts/esc.misc` do ssh -q -o ConnectTimeout=10 operator@$host df -h|grep "/dev/" |egrep '8%|9%|100%' | awk '{print H " " "at " $5 " with " $4 "... (1 Reply)
Discussion started by: rkruck
1 Replies

8. Shell Programming and Scripting

case statement

Hi, I am writing case statement to execute some finction, my requirement is once one of the case statement is executed again it has to prompt for the option. for script in `echo "$Script_Selected"` do case $script in 1) getNoOFActUsers ;; 2) moveServerrOORotation ;; ... (2 Replies)
Discussion started by: Satyak
2 Replies

9. Shell Programming and Scripting

Case Statement

Hey, guys I really need some help with a project. "Write a shell program that examines the command line arguments, counts and collects the number of options. Basically it has to collect and count the arguments that start with a "-" and the one's that don't start with a - I know I have to use... (2 Replies)
Discussion started by: sk192010`
2 Replies

10. Homework & Coursework Questions

Case Statement

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Hey, guys I really need some help with a project. "Write a shell program that examines the command line... (8 Replies)
Discussion started by: sk192010`
8 Replies
rm(1)							      General Commands Manual							     rm(1)

Name
       rm, rmdir - remove (unlink) files or directories

Syntax
       rm [-f] [-r] [-i] [-] file-or-directory-name...
       rmdir directory-name...

Description
       The command removes the entries for one or more files from a directory.	If there are no links to the file then the file is destroyed.  For
       further information, see

       The command removes entries for the named directories, which must be empty.  If they are not empty, the directories remain, and displays an
       error message (see EXAMPLES).

       To  remove  a file, you must have write permission in its directory, but you do not need read or write permission on the file itself.  When
       you are using from a terminal, and you do not have write permission on the file, the command asks for confirmation  before  destroying  the
       file.

       If  input  is redirected from the standard input device (your terminal), then checks to ensure that input is not coming from your terminal.
       If not, sets the -f option, which overrides the file protection, and removes the files silently, regardless of what you have  specified	in
       the file redirected as input to See EXAMPLES.

Options
       -    Specifies that the named files have names beginning with a minus (for example ).

       -f   Forces the removal of file or directory without first requesting confirmation.  Only system or usage messages are displayed.

       -i   Prompts  for yes or no response before removing each entry.  Does not ask when combined with the -f option.  If you type a y, followed
	    by any combination of characters, a yes response is assumed.

       -r   Recursively removes all entries from the specified directory and, then, removes the entry for that directory from  its  parent  direc-
	    tory.

Examples
       The following example shows how to remove a file in your current working directory.
       rm myfile
       This example shows use of the null option to remove a file beginning with a minus sign.
       rm - -gorp
       This example shows how a confirmation is requested for removal of a file for which you do not have write permission.
       rm testfile
       rm: override protection 400 for testfile? y
       This  example  shows  how  the combination of -i and -r options lets you examine all the files in a directory before removing them.  In the
       example, mydirectory is a subdirectory of the current working directory.  Note that the last question requests confirmation before removing
       the  directory  itself.	 Although  the user types ``y'', requesting removal of the directory, the command does not allow this, because the
       directory is not empty; the user typed ``n'' to the question about the file file2 , so file2 was not removed.
       rm -ir mydirectory
       rm: remove mydirectory/file1? y
       rm: remove mydirectory/file2? n
	     .
	     .
	     .
       rm: remove mydirectory? y
       rm: mydirectory: Directory not empty
       This example illustrates that overrides file protection when input is redirected from the standard input device.  The user creates  a  file
       named ``alfie'', with a read-only file protection.  The user then creates a file named ``ans'' to contain the character ``n''.  The command
       following destroys the file ``alfie'', even though the redirected input file requested no deletion.
       cat > alfie
       hello
       ^d
       chmod 444 alfie
       cat > ans
       n
       ^d
       rm < ans alfie

See Also
       unlink(2)

																	     rm(1)
All times are GMT -4. The time now is 07:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy