03-26-2007
Variable in While Loop Nested If
Hi all,
I'm having problems with the setting a variable in a nested if statement. It doesn't seem to change even if it mets the 'if' condition.
My script essentially looks for a user name from the output from a kerberos command.
When I find the user name, I tried to change a variable and exit the script.
I'm using sh under Fedora Core 5.
Here is part of my script:
#!/bin/sh
#Constants and Globals
USER_EXISTS=1
USER_DOESNT_EXIST=0
user_name=
g_exitcode=
#note: I parse the $user_name from the command line arguments
#Main
g_exitcode=$USER_DOESNT_EXIST
kas list | while read i
do
echo "$i : $user_name"
#compare the user_name with each entry in the kas database
if [ "$user_name" = "$i" ]; then
#Match found
g_exitcode $USER_EXISTS
break
fi
done
exit $g_exitcode
So, even if a match is found, and it enters the nested if statement and sets the g_exitcode to USER_EXISTS at that point, I always exit the script with g_exitcode=USER_DOESNT_EXIST.
Sorry, I'm a little new to scripting. Any help would be appreciated
0
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I have two do loops. When I break of the inner loop it doesn't go back to the outer loop but exit the program. (5 Replies)
Discussion started by: chinog
5 Replies
2. Shell Programming and Scripting
#!/bin/sh
APP_ROOT_MODE1=/opt/app1.0
APP_ROOT_MODE2=/opt/app2.0
APP_ROOT=${APP_ROOT_${APP_MODE}}
# enviornment variable APP_MODE will be exported in the terminal where
# we run the applciation, its value is string - MODE1 or MODE2
# My intension is:
# when export APP_MODE=MODE1... (4 Replies)
Discussion started by: princelinux
4 Replies
3. Shell Programming and Scripting
Hi,
I have the following script which is two while loops, but it is working only for the Inner loop without going back to the outer loop.
the aim of this script is to remove data files from memory after each five times for each setting of the rotate parameter
#!/bin/csh
set hdir =... (1 Reply)
Discussion started by: moon218
1 Replies
4. Shell Programming and Scripting
Hi,
How to use values in one for loop to other for loop.
say "$sf_rel" variable has values "2011/W2 2011/G2" I want to use these values in inner for loop to process properly.
$branch variable has G2 and 6
What is happening is outer for loop $i has 2011/W2 it is entering into inner... (3 Replies)
Discussion started by: Anjan1
3 Replies
5. UNIX for Dummies Questions & Answers
Greetings,
Would anyone be able to tell me why this nested loop doesn't seem to work in any variation?
for i in {1..8}
do
echo "i is "$i
for j in {1..i}
do
echo "j is "$j
done
doneoutput is always along the lines of
i is 1... (7 Replies)
Discussion started by: barnhillec
7 Replies
6. Shell Programming and Scripting
Hi Team,
I just want to check whether my nested if loop used is correct or not.
if ]
if ]
export1
else
export2
fi
else
if ]
export3
else
export4
fi
fi
Thanks
Shiva (5 Replies)
Discussion started by: shivashankar_S
5 Replies
7. Shell Programming and Scripting
Hi All,
Need help on below script
for g in `cat /home/sid.txt`
do
for h in `cat /home/dev.txt`
do
symmaskdb -sid $g -dev $h list assign |grep FA |head -1|awk '{print $2}' > tt1.txt
done
done
cat /home/sid.txt
**************
123
235
456 (5 Replies)
Discussion started by: ranjancom2000
5 Replies
8. Programming
I have a MPI program like this:
void slave1(int j){
MPI_Status status;
MPI_Recv(&j,1,MPI_INT,0,0,MPI_COMM_WORLD,&status);}
void slave2(int j){
MPI_Status status;
MPI_Recv(&j,1,MPI_INT,0,1,MPI_COMM_WORLD,&status);}
int main(int argc, char *argv){
int numprocs, rank;
... (0 Replies)
Discussion started by: wanliushao
0 Replies
9. UNIX for Dummies Questions & Answers
I am using the following nested loop
for i in {1..3}
do
for y in {1..3}
do
if ;
then
echo P0${i}R${y}.fas
mv P0${i}R${y}.fas P${i}R${y}.fas
read -t 5
fi
done
done
I was wondering if I can use a character such as * or ? instead of my second variable y. I tried R in... (3 Replies)
Discussion started by: Xterra
3 Replies
SETUID(1) General Commands Manual SETUID(1)
NAME
setuid - run a command with a different uid.
SYNOPSIS
setuid username|uid command [ args ]
DESCRIPTION
Setuid changes user id, then executes the specified command. Unlike some versions of su(1), this program doesn't ever ask for a password
when executed with effective uid=root. This program doesn't change the environment; it only changes the uid and then uses execvp() to find
the command in the path, and execute it. (If the command is a script, execvp() passes the command name to /bin/sh for processing.)
For example,
setuid some_user $SHELL
can be used to start a shell running as another user.
Setuid is useful inside scripts that are being run by a setuid-root user -- such as a script invoked with super, so that the script can
execute some commands using the uid of the original user, instead of root. This allows unsafe commands (such as editors and pagers) to be
used in a non-root mode inside a super script. For example, an operator with permission to modify a certain protected_file could use a
super command that simply does:
cp protected_file temp_file
setuid $ORIG_USER ${EDITOR:-/bin/vi} temp_file
cp temp_file protected_file
(Note: don't use this example directly. If the temp_file can somehow be replaced by another user, as might be the case if it's kept in a
temporary directory, there will be a race condition in the time between editing the temporary file and copying it back to the protected
file.)
AUTHOR
Will Deich
local SETUID(1)