01-15-2013
Why doesnt if inside a while loop work ?
I am looping through a file in bash and performing some operations on it. Here is the code.
cat test.dat -
One
Two
Three
Case 1: With if inside while loop
Quote:
#!/bin/bash
cat ~/tmp/test.dat | while read line
do
echo $line
if ssh tempuser@host5592 "test -e '/home/tempuser/tmp/test.dat'"; then
echo "file found :) "
fi
done
Output:
One
file found :)
------------------
isn't it supposed to print following output !!!
one
file found :)
two
file found :)
three
file found :)
four
file found :)
Case 2: I comment if condition inside loop
Quote:
#!/bin/bash
cat ~/tmp/test.dat | while read line
do
echo $line
# if ssh tempuser@host5592 "test -e '/home/tempuser/tmp/test.dat'"; then
# echo "file found :) "
# fi
done
Output:
one
two
three
four
Can come one explain why is this happening ? Why is if breaking the loop.
-Steve
Last edited by Scott; 01-15-2013 at 01:34 PM..
Reason: Code tags and formatting
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Is there a utility or command I can use to tell the number of decimal places a number has. For instance, if the number is 432, it will give hundred as the number of decimal places. (7 Replies)
Discussion started by: Heedunk
7 Replies
2. UNIX for Dummies Questions & Answers
hi
when i want to go to previous directory by typing cd.. i get the following message
$ cd..
ksh: cd..: not found
Please help
rintingtong (2 Replies)
Discussion started by: rintingtong
2 Replies
3. HP-UX
Good Day
I mistakely renamed the dld.sl file in the /usr/lib directory. When i try to ls/ftp into the box i get this error :eek:
crt0: ERROR couldn't open /usr/lib/dld.sl errno:000000002
I have tried to rename it back from the renamed file to the original file name, but it gives me the... (2 Replies)
Discussion started by: shawnbishop
2 Replies
4. UNIX for Dummies Questions & Answers
When trying to copy a file in Solaris 8 it doesnt copy file or give a error. This worked 100% until the 29th. I've checked the rights and everything seems fine:
drwxrwxrwx 2 bmuser bmgroup 11776 Jan 3 10:32 spool
This is the file I want to copy:
-rwxrwxrwx 1 bmuser bmgroup ... (26 Replies)
Discussion started by: rudi.okelly
26 Replies
5. Red Hat
Hii All,
I am using openldap v2.3 on redhat El-4. When i run ldapsearch it returns all the entries. The command runs successfully. But when I run the ldapsearch with following filter option it doesnt work and immediately returns to the shell.
ldapsearch uidNumber>=2000
I've started slapd... (0 Replies)
Discussion started by: shamik
0 Replies
6. Shell Programming and Scripting
It just does the break...even though the files are not the same...
# Compare extracts
#==========================================
count=0
while (( count < 5 ))
do
(( count+=1 ))
echo "Try $count"
file1=$(ls -l /tmp/psjava.xml|... (5 Replies)
Discussion started by: sigh2010
5 Replies
7. Shell Programming and Scripting
this is my file I have written.
// My first C++ program
#include <iostream>
int main()
{
std::cout << "Hi there!" << std::endl";
std::cout << "This is my first C++ program" << std::endl";
return(0);
}
This is the error I get, why?
$ g++ first.cpp
ksh: g++: not found (1 Reply)
Discussion started by: gustave
1 Replies
8. AIX
Hi Guys,
I have a strange problem.( AIX 6.1) "vi" is not working at all..Whenever i #vi <anythin> ,, it returns the prompt back. Any clues folks?? (14 Replies)
Discussion started by: muzahed
14 Replies
9. UNIX for Dummies Questions & Answers
I am trying to print out two fields in a file using awk. So, I have got
awk -F '\t' 'NF = 2 {print $1 $2 "]"}' two.txt
in a script called what.awk
When i run this version like this - ./what.awk then it runs however I want to run the program like this
awk -f what.awk two.txt.
When I... (8 Replies)
Discussion started by: The undertaker
8 Replies
10. Programming
hi all,
i have created a for loop, it looks like this -
#!/bin/bash
cd /mnt/local/data/tars
for tar in *
do
base=$(basename "$tar")
"$base" -tvf >> /mnt/local/data/logs/"$base".csv
done
but i get this error -
./tar_loop.sh: line 8:... (2 Replies)
Discussion started by: robertkwild
2 Replies
LEARN ABOUT POSIX
d_passwd
d_passwd(4) File Formats d_passwd(4)
NAME
d_passwd - dial-up password file
SYNOPSIS
/etc/d_passwd
DESCRIPTION
A dial-up password is an additional password required of users who access the computer through a modem or dial-up port. The correct pass-
word must be entered before the user is granted access to the computer.
d_passwd is an ASCII file which contains a list of executable programs (typically shells) that require a dial-up password and the associ-
ated encrypted passwords. When a user attempts to log in on any of the ports listed in the dialups file (see dialups(4)), the login program
looks at the user's login entry stored in the passwd file (see passwd(4)), and compares the login shell field to the entries in d_passwd.
These entries determine whether the user will be required to supply a dial-up password.
Each entry in d_passwd is a single line of the form:
login-shell:password:
where
login-shell The name of the login program that will require an additional dial-up password.
password An encrypted password. Users accessing the computer through a dial-up port or modem using login-shell will be required to
enter this password before gaining access to the computer.
d_passwd should be owned by the root user and the root group. The file should have read and write permissions for the owner (root) only.
If the user's login program in the passwd file is not found in d_passwd or if the login shell field in passwd is empty, the user must sup-
ply the default password. The default password is the entry for /usr/bin/sh. If d_passwd has no entry for /usr/bin/sh, then those users
whose login shell field in passwd is empty or does not match any entry in d_passwd will not be prompted for a dial-up password.
Dial-up logins are disabled if d_passwd has only the following entry:
/usr/bin/sh:*:
EXAMPLES
Example 1: Sample d_passwd file.
Here is a sample d_passwd file:
/usr/lib/uucp/uucico:q.mJzTnu8icF0:
/usr/bin/csh:6k/7KCFRPNVXg:
/usr/bin/ksh:9df/FDf.4jkRt:
/usr/bin/sh:41FuGVzGcDJlw:
Generating An Encrypted Password
The passwd (see passwd(1)) utility can be used to generate the encrypted password for each login program. passwd generates encrypted pass-
words for users and places the password in the shadow (see shadow(4)) file. Passwords for the d_passwd file will need to be generated by
first adding a temporary user id using useradd (see useradd(1M)), and then using passwd(1) to generate the desired password in the shadow
file. Once the encrypted version of the password has been created, it can be copied to the d_passwd file.
For example:
1.
Type useradd tempuser and press Return. This creates a user named tempuser.
2. Type passwd tempuser and press Return. This creates an encrypted password for tempuser and places it in the shadow file.
3. Find the entry for tempuser in the shadow file and copy the encrypted password to the desired entry in the d_passwd file.
4. Type userdel tempuser and press Return to delete tempuser.
These steps must be executed as the root user.
FILES
/etc/d_passwd dial-up password file
/etc/dialups list of dial-up ports requiring dial-up passwords
/etc/passwd password file
/etc/shadow shadow password file
SEE ALSO
passwd(1), useradd(1M), dialups(4), passwd(4), shadow(4)
WARNINGS
When creating a new dial-up password, be sure to remain logged in on at least one terminal while testing the new password. This ensures
that there is an available terminal from which you can correct any mistakes that were made when the new password was added.
SunOS 5.10 2 Sep 2004 d_passwd(4)