script to tell whether there exists directory or not


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting script to tell whether there exists directory or not
# 1  
Old 10-09-2012
script to tell whether there exists directory or not

Hi,

I am writing a script as follows:

Code:
#!/bin/sh
set -x
for i in `cat a`; do
#sleep 3
print $i >> server.txt
sleep 5
if test -d `vtask  $i "' ls -lrt /opt/log/ '" ` ;
then
print $i >> 12.5.txt
else
print $i >> 12.0.txt
fi
done

where the vtask is a command line execution script
in my 'a' file I have some servers

I want to check if the log directory exists in the servers if it exists then it should update in the 12.5.txt else if the log directory does not exists if should update in the 12.0.txt directory.

Any corrections in my code please help

Thanks
Dinesh
# 2  
Old 10-10-2012
Any error msgs? Any output at all? What does not work?
# 3  
Old 10-10-2012
ok I will make that simple,

I want to just grep the '12.5.0.2307' from a command output

############################################################################
CA IT Client Manager
--------------------
Agent - Basic Hardware Inventory 12.5.0.2307
Agent - Asset Management 12.5.0.2307
Agent - Data Transport 12.5.0.2307
Agent - Software Delivery 12.5.0.2307
Agent - Deployment 12.5.0.2307
############################################################################

Code:
runtask <servername> 'version.sh | grep '12.5.0.2307' '

The above command gives me full output of the text file since it matches all the 12.5.0.2307 I want to grep just '12.5.0.2307' alone...I don't want the whole line just the 12.5.0.2307, how to achieve this?
# 4  
Old 10-10-2012
If your grep/fgrep supports the -o switch, you could use that.
# 5  
Old 10-10-2012
Hi, My box is aix and the grep does not support -o option. Any other suggestions? ofcourse I can think about awk but not sure how to get the word alone from the output
# 6  
Old 10-10-2012
Code:
awk '{while(match($0,/12\.5\.0\.2307/))
{
 print substr($0,RSTART,RLENGTH)
 sub(/12\.5\.0\.2307/,"")
}}' file

or with Perl:
Code:
perl -ne 'while(/(12\.5\.0\.2307)/){
print $1 . "\n";
s/12\.5\.0\.2307//}' file

This User Gave Thanks to elixir_sinari For This Post:
# 7  
Old 10-10-2012
Hi,

Thanks for your reply and the solution. But, I am struck a bit hope to get a lift from you.

Code:
#!/bin/sh
set -x
for i in `cat serverlist`; do
sleep 2
vtask $i ". /etc/profile.CA all; dsmver" > version.txt
ver=`awk '{while(match($0,/12\.5\.0\.2307/)) {  print substr($0,RSTART,RLENGTH) sub(/12\.5\.0\.2307/,"")}}' version.txt | sort -u`
echo $ver
if [ $? -eq 0 ];
then
print $i >> 12.5.txt
else
print $i >> 12.0.txt
fi
done

The output is shown below:
Code:
# ./agentversion.sh 
+ cat serverlist
+ sleep 2
+ vtask xxxxxx . /etc/profile.CA all; dsmver
+ 1> version.txt
+ + sort -u
+ awk {while(match($0,/12\.5\.0\.2307/)) {  print substr($0,RSTART,RLENGTH) sub(/12\.5\.0\.2307/,"")}} version.txt
ver=
+ echo

+ [ 0 -eq 0 ]
+ print yyyyyy
+ 1>> 12.5.txt
+ sleep 2
+ vruntask mmmmmm . /etc/profile.CA all; dsmver
+ 1> version.txt
+ + sort -u
+ awk {while(match($0,/12\.5\.0\.2307/)) {  print substr($0,RSTART,RLENGTH) sub(/12\.5\.0\.2307/,"")}} version.txt
ver=12.5.0.23071
+ echo 12.5.0.23071
12.5.0.23071
+ [ 0 -eq 0 ]
+ print ssssssss
+ 1>> 12.5.txt

what I want to know is even if the command does not find '12.5.0.2307' version in the server it still goes to the 12.5.txt file, I want if the command does not find the version as '12.5.0.2307' or it got disconnected it should go to 12.0.txt

The version.txt file has the following entries

12.5.0.2307
12.5.0.2307
12.5.0.2307

not sure why another '1' is added after 12.5.0.23071

Last edited by dbashyam; 10-10-2012 at 07:58 AM.. Reason: hiding the servername + added additional inputs
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Check that at least one file exists in the directory.

There are some files with suffix dates like abc_20032019.dat abc_17032019.dat If at least one file exists then perform some operation else exit from execution. Korn shell ---------------------------------- array=($inputdir/abc*.dat) If ] ] then echo " file exits" else echo " file does... (10 Replies)
Discussion started by: Rajesh123
10 Replies

2. Shell Programming and Scripting

Check whether file exists in directory

Hi guys, I am beginner trying to learn unix. So any help is welcomed. My requirement is to check whether is a file exists in a particular directory or not. The directory path and filename are taken dynamically with user interaction. So the program should continue only if the $filename... (1 Reply)
Discussion started by: maris_markur
1 Replies

3. Shell Programming and Scripting

Shell Script for generating NTIDs(Usernames) from the email ids which exists in MSAD Directory

Hi Everyone, I just need a shell script which automatically gives the list of NT IDs mean the Usernames from the list of email ids. We have around 140 users from AMERICAS,ASIAPACIFIC and EMEA User Directories and we have their email ids.For ex. i have email id called naveen-kumar.dasu@hp.com... (7 Replies)
Discussion started by: naveen.dasu
7 Replies

4. Shell Programming and Scripting

how to check if a directory exists or not.if not need to create it

Hi, I am using solaris 10 OS and bash shell.just checking for small code snippet which follows below. /export/home/vomappservers/spa/common/5.0 /export/home/vomappservers/spa/common/scripts /export/home/vomappservers/spa/tools /export/home/vomappservers/spa/scm5.0/SCCS... (5 Replies)
Discussion started by: muraliinfy04
5 Replies

5. Shell Programming and Scripting

perl, if directory exists

Hi there I am trying to make a fuction that looks for a email profile that ends in .$ARGV here is the code if (-d "/Users/$ARGV/Library/Thunderbird/Profiles/*.$ARGV") { print "\n WARNING: Email profile already exits\n\n"; exit; } but for some reason it does... (2 Replies)
Discussion started by: ab52
2 Replies

6. Shell Programming and Scripting

Problem when test to see if directory exists

Hi, I'm writing a shell script that will create a folder if it does not exist yet. Here's the script: (this if statement is inside a while loop) folderName="Pics" if ! test -d folderName then mkdir $folderName fi However, after the folder Pics has been created, every time the... (3 Replies)
Discussion started by: trivektor
3 Replies

7. UNIX for Dummies Questions & Answers

How can I check if directory exists in a makefile

Hi. I what to write a make file that inside a target I want to check if a directory exists. some like: ### make a: if ;then <command 1> else <command 2> fi ### make end Thanks a lot ---------------------- (2 Replies)
Discussion started by: zivsegal
2 Replies

8. Shell Programming and Scripting

how to check if masked directory exists?

I'm trying to write a script that identifies whether a directory of the form AWL.????????.IP exists. I have one that exists which is AWL.05301032.IP. When I test like this: If ] I get true, but when I test like this: If ] Or like this If ] Or any other variation of wild cards, I... (4 Replies)
Discussion started by: philplasma
4 Replies

9. UNIX for Dummies Questions & Answers

Directory exists

Hi all, Sorry about this i'm sure this is a very silly question hence an easy answer but: I'm trying to write a script, part of which I want to check if a directory exists, if it doesn't then create it. Thanks for your help Tez (3 Replies)
Discussion started by: tez
3 Replies

10. Shell Programming and Scripting

check if directory exists

Hi, I need to prompt for a response from a user to enter a path read dest_dir?"Please Enter Directory :" How do I do this until a valid directory is entered by the user. I can use to check the existence of the directory. However when I try the following I cannot get it to work. while ... (2 Replies)
Discussion started by: jerardfjay
2 Replies
Login or Register to Ask a Question