Bug with tcsh? : if evaluating true instead of false
Garrett Cooper
youshi10 at u.washington.edu
Wed Oct 25 08:45:47 UTC 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Garrett Cooper wrote:
> Ok, so I tried to make a simple script to add users so I wouldn't have
> to type in groups/pw over and over again... the problem is that it's not
> behaving like it should =o.
>
> Script:
> #!/bin/tcsh -x
> #
>
> if ( ( $# != 0 ) ) {
>
> set GROUPS="";
> set USER="";
>
> if( ( $# == 2 ) ) {
>
> set USER=$1;
> set GROUPS=$0;
>
> switch($0)
>
> case "-v":
> set GROUPS="-G vip";
> breaksw
>
> case "-w":
> set GROUPS="-G vip,wheel";
> breaksw
> default:
> echo "bad argument(s) specified!";
> exit(1);
>
> endsw
>
> } else if($# == 1) {
> set USER=$0;
> } else {
> echo "bad # of args; exiting..";
> }
>
> `pw add user -N -d /home/$USER -s /usr/local/bin/bash $GROUPS
> $USER && mkdir /home/$USER && ln -s /home/dud.bash_login
> /home/$USER/.bash_login`;
>
> } else {
> print "Usage [-r|-v|-w] username"
> }
>
> Output:
> [root at hoover ~]# ./mkuser
> if ( ( 0 != 0 ) ) {
> set GROUPS=
> set USER=
> if ( ( 0 == 2 ) ) {
> set USER=
> set GROUPS=./mkuser
> switch ( ./mkuser )
> echo bad argument(s) specified!
> bad argument(s) specified!
> exit ( 1 )
>
> Basically it should drop out at the first if statement due to 0 != 0
> being true and go straight to the else block, but it's falling through
> to the switch statement. Any ideas?
>
> Also..
>
> [root at hoover /home/gcooper]# tcsh --version
> tcsh 6.14.00 (Astron) 2005-03-25 (i386-intel-FreeBSD) options
> wide,nls,dl,al,kan,rh,color,filec
>
> Thanks!
>
> -Garrett
Duh... tcsh syntax != C/C++ or Java syntax. Silly me... lol.
- -Garrett
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFFPyQr6CkrZkzMC68RApumAJ9hl365xnqYknflDGr2Cc7O/UClnwCeN7Ih
KsVQzm0ySuW3bSGe7cCgltQ=
=MZO5
-----END PGP SIGNATURE-----
More information about the freebsd-questions
mailing list