Sponsored Content
Full Discussion: tcl-argv with switch & while
Top Forums Programming tcl-argv with switch & while Post 302502241 by drl on Monday 7th of March 2011 10:32:31 AM
Old 03-07-2011
Hi.

This is probably a csh fragment. Here it is inserted into a csh script:
Code:
#!/usr/bin/env tcsh

# @(#) s1	Demonstrate feature.

# Infrastructure details, environment, commands for forum posts. 
# Uncomment setenv command to run script as external user.
# setenv PATH "/usr/local/bin:/usr/bin:/bin"
echo
setenv LC_ALL C ; setenv LANG C
echo "Environment: LC_ALL = $LC_ALL, LANG = $LANG"
echo "(Versions displayed with local utility version)"
sh -c "version >/dev/null 2>&1 && version '=o' tcsh"
echo

while ($#argv > 0)
    set arg=$argv[1]
    shift argv
    switch ($arg)
case "-cell":
            set cell=$argv[1]
            if ( !($cell == "bus" || $cell == "core")) then
                echo "\n******Valid cell names are core or bus******"
                goto help
            else 
                echo "cell = ${cell}"
            endif
            breaksw;
        case "-path_to_ezqb":
            set path_to_ezqb=$argv[1]
endsw
end

exit 0

producing:
Code:
% ./s1 -cell x

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility version)
OS, ker|rel, machine: Linux, 2.6.26-2-amd64, x86_64
Distribution        : Debian GNU/Linux 5.0.7 (lenny) 
tcsh 6.14.00


******Valid cell names are core or bus******
help: label not found.

Good luck ... cheers, drl
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

if #argv = (this OR that) then...

this is in one of my scripts... if ($#argv == 0) then echo 'blah bla' exit 0 endif I want it to be something like this... if ($#argv == 0 OR $argv >=3) echo 'blah bla' exit 0 endif so when the arguments are none, or greater than three I want this "if then" to take over. how? I... (5 Replies)
Discussion started by: ajp7701
5 Replies

2. Shell Programming and Scripting

Tcl switch statement

I am just learning Tcl and there are few things about it that is perplexing me. I have a question about the switch statement. Why are these two switch statements giving me different results? $ cat test_switch.tcl #!/usr/bin/tcl set foo "abc" switch abc a - b {puts "No. 1"} $foo {puts... (2 Replies)
Discussion started by: SFNYC
2 Replies

3. Shell Programming and Scripting

how to access console of a switch having rj45 on switch side to db 9 female on pc side console cable

hi, how to access console of a switch having rj45 on switch side to db 9 female on pc side console cable which needs to be connected to one console server having rj11 on its side and db 9 female on other end.i.e. on switch side,console cable has rj45 and db 9 pin female connector on other side of... (1 Reply)
Discussion started by: pankajd
1 Replies

4. Programming

help with C, argv

when i run my program, i have a parameter, that i want to set the value to another string i am using int main(int argc, char **argv) { char my_str=argv; printf("%s",my_str); return 0; } and i get Segmentation fault ran using ./my_prog /usr/share/dict/words hello1 ... (2 Replies)
Discussion started by: omega666
2 Replies

5. Programming

C shell deciphers someones code & argv

I’m trying to work off of someone else code they gave me as an example but they are gone! I’m trying to pretty much write a wrapper of several different scripts. They use argv…I keep on thinking the next one should be argv ect. I’m not sure if maybe its different in PERL maybe if that’s true? Or... (5 Replies)
Discussion started by: carbuncle11
5 Replies

6. AIX

Switch Port Becoming Private & restricting access

Hello folks, I have an AIX server that is connected to a storage array via a Brocade switch using 4 ports from either side. The zoning is done such that there are 4 paths visible from the server to the storage. My work involves frequent disabling or enabling the switch ports that are... (1 Reply)
Discussion started by: nkiran
1 Replies

7. UNIX for Dummies Questions & Answers

Shell Scripting for Router, Switch & FW deviation

Hi, I have written a script for finding deviation for router,switch &fw. It is working fine on linux server. But when I try on sunos 5.10 OS it showing "grep: illegal option -- A". I have used grep -C and grep -A. How it will work on sunos? Help me out please !! (12 Replies)
Discussion started by: GautamSK
12 Replies

8. UNIX for Advanced & Expert Users

O argv, argv, wherefore art thou argv?

All of my machines (various open source derivatives on x86 and amd64) store argv above the stack (at a higher memory address). I am curious to learn if any systems store argv below the stack (at a lower memory address). I am particularly interested in proprietary Unices, such as Solaris, HP-UX,... (9 Replies)
Discussion started by: alister
9 Replies

9. UNIX for Dummies Questions & Answers

ARGV how to use it?

So i am trying to read in file readFile <GivenFile> modFile looking for a regular file under the directories in the GivenFile and print them out is my over all goal. basically I am looking for anything that looks like a directory in the given file and printing it out. Since I am trying to do... (2 Replies)
Discussion started by: squidGreen
2 Replies
Tcl_SplitPath(3)					      Tcl Library Procedures						  Tcl_SplitPath(3)

__________________________________________________________________________________________________________________________________________________

NAME
Tcl_SplitPath, Tcl_JoinPath, Tcl_GetPathType - manipulate platform-dependent file paths SYNOPSIS
#include <tcl.h> Tcl_SplitPath(path, argcPtr, argvPtr) char * Tcl_JoinPath(argc, argv, resultPtr) Tcl_PathType Tcl_GetPathType(path) ARGUMENTS
const char *path (in) File path in a form appropriate for the current platform (see the filename manual entry for acceptable forms for path names). int *argcPtr (out) Filled in with number of path elements in path. const char ***argvPtr (out) *argvPtr will be filled in with the address of an array of pointers to the strings that are the extracted elements of path. There will be *argcPtr valid entries in the array, followed by a NULL entry. int argc (in) Number of elements in argv. const char *const *argv (in) Array of path elements to merge together into a single path. Tcl_DString *resultPtr (in/out) A pointer to an initialized Tcl_DString to which the result of Tcl_JoinPath will be appended. _________________________________________________________________ DESCRIPTION
These procedures have been superceded by the objectified procedures in the FileSystem man page, which are more efficient. These procedures may be used to disassemble and reassemble file paths in a platform independent manner: they provide C-level access to the same functionality as the file split, file join, and file pathtype commands. Tcl_SplitPath breaks a path into its constituent elements, returning an array of pointers to the elements using argcPtr and argvPtr. The area of memory pointed to by *argvPtr is dynamically allocated; in addition to the array of pointers, it also holds copies of all the path elements. It is the caller's responsibility to free all of this storage. For example, suppose that you have called Tcl_SplitPath with the following code: int argc; char *path; char **argv; ... Tcl_SplitPath(string, &argc, &argv); Then you should eventually free the storage with a call like the following: Tcl_Free((char *) argv); Tcl_JoinPath is the inverse of Tcl_SplitPath: it takes a collection of path elements given by argc and argv and generates a result string that is a properly constructed path. The result string is appended to resultPtr. ResultPtr must refer to an initialized Tcl_DString. If the result of Tcl_SplitPath is passed to Tcl_JoinPath, the result will refer to the same location, but may not be in the same form. This is because Tcl_SplitPath and Tcl_JoinPath eliminate duplicate path separators and return a normalized form for each platform. Tcl_GetPathType returns the type of the specified path, where Tcl_PathType is one of TCL_PATH_ABSOLUTE, TCL_PATH_RELATIVE, or TCL_PATH_VOL- UME_RELATIVE. See the filename manual entry for a description of the path types for each platform. KEYWORDS
file, filename, join, path, split, type Tcl 7.5 Tcl_SplitPath(3)
All times are GMT -4. The time now is 10:27 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy