vi and if statements


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting vi and if statements
# 1  
Old 10-23-2010
vi and if statements

Hi

I am very new to Unix programming and shell scripting. I am trying t figure out how to write a little script that will output the number of directories. I can find the number of directories using ls -l | grep "^d" | wc -l I can not figure out how to do it so when I type the name of the file it will show the number of directories. I am using #!/bin/sh shell.

Thanks in advance, Red
# 2  
Old 10-23-2010
You mean you want a script:
Code:
#!/bin/bash
find $1 -type d | wc -l | read var
echo "Directory count: $var"

Put that in a file called fdir.sh, with an editor. Then:
Code:
chmod +x fdir.sh

To use it:
Code:
./fdir.sh /usr

where /usr is a directory. I picked /usr because all unix systems have this directory name. You select any valid directory name.

If you enter a directory that is outside your current directory, use a full path:
/var/log when you want the log directory under /var.
# 3  
Old 10-24-2010
Quote:
Originally Posted by jim mcnamara
Code:
#!/bin/bash
find $1 -type d | wc -l | read var
echo "Directory count: $var"

This script will count the current directory, the hidden directories and all subdirectories at any level too which is probably not be what the OP asks for. Moreover, while it would work in ksh, it can't in bash due to a (poor IMHO) bash implementation choice. The var variable setting is lost when trying to display its value.
A more portable way would be:
Code:
#!/bin/bash # or ksh, dash, ...
var=$(find $1 -type d | wc -l) 
echo "Directory count: $var"

That said, I have frankly no idea about what the open poster is asking for and especially how the thread title "vi and if statement" can relate to printing a number of directories ...
# 4  
Old 10-24-2010
Hi and thanks for the reply's. I am using vi editor and trying to create a script using if statements. I will see what I can do with the suggestions.

Thanks, Red



---------- Post updated at 02:15 PM ---------- Previous update was at 12:05 PM ----------




Hi
Tried different combination's. One of the things I tried is;

Code:
#!/bin/sh

var=ls -l | grep "^d" | wc -l
if [ $1 = o ]
then
    echo $var
fi

When I try to run it, I get an error [: 9: =: unexpected operator

I have 9 directories when I run ls -l and that is what I am try to get it to show when I run the program.

Stumped
Thanks, Red



---------- Post updated at 02:28 PM ---------- Previous update was at 02:15 PM ----------




I found that I should be posting this in a different forum.

Sorry, Red

Last edited by Scott; 10-24-2010 at 05:19 PM.. Reason: Please use code tags
# 5  
Old 10-24-2010
Code:
var=$(ls -l | grep "^d" | wc -l)

or
Code:
var=`ls -l | grep "^d" | wc -l`

...
Code:
#!/bin/sh

var=$(ls -l | grep "^d" | wc -l)
if [ "$1" = "o" ]
then
echo "$var"
fi

# 6  
Old 10-24-2010
Hi

I tried using code from bottom code box. When I executed code, I got and error 3: syntax error "(" unexpected. I tried using back ticks, no errors but did not have any output. I also tried using # instead of 1 in if statement.

Thanks, Red
# 7  
Old 10-25-2010
Make sure you run it from the directory you want to ls -l and make sure you run it with it's argument o
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

if and then statements

I came across a bash script that outputs the forecast for the day and the max temperature but at the end of the day the max temperature disappears ($6) and I am left with "°C" after the forecast. Here is the script: #! /bin/bash curl -s --connect-timeout 30... (7 Replies)
Discussion started by: _light_
7 Replies

2. Homework & Coursework Questions

Using While and If statements

1. The problem statement, all variables and given/known data: Two problems I need solving please. I created a script where the user types in 7 numbers as standard input and each one is then stored in an array. Now I need to perform the following calculations on those numbers: 1) Use a while... (11 Replies)
Discussion started by: jjb1989
11 Replies

3. Shell Programming and Scripting

Using While and If statements

Hi guys, Two problems I need solving please. I created a script where the user types in 7 numbers as standard input and each one is then stored in an array. Now I need to perform the following calculations on those numbers: 1) Use a while loop to determine the largest number in the range. ... (2 Replies)
Discussion started by: jjb1989
2 Replies

4. Shell Programming and Scripting

Help with IF statements

I am writing a script that does a search for a argument in a file and lists all like occurrences. The script verifies that it is a file and then runs another script that list the lines. My problem is that I need the script to accept a file or a directory and then go to that directory check all... (1 Reply)
Discussion started by: zero3ree
1 Replies

5. Shell Programming and Scripting

If statements....

Good morning all! I want to know if Im interpreting this if statement below right. if(((1) || (0)) && (1)){ do stuff; } This is saying: if true piped into false, then true, then do stuff. Right? What does the && stand for? thanks in advance! ben (3 Replies)
Discussion started by: bigben1220
3 Replies

6. UNIX for Dummies Questions & Answers

Help with For Statements

Hi, I am trying to write a for statement that will allow for the ps, who, finger, and date commands to run. Can anyone help? I use Putty. (22 Replies)
Discussion started by: lexydoll87
22 Replies

7. Shell Programming and Scripting

HELP!! if statements

I am kind of new in Unix and i have to make a menu. I want to put an if statement in the menu. you should enter the filename and it goes to that file. How do i do this? (1 Reply)
Discussion started by: trob
1 Replies

8. UNIX for Advanced & Expert Users

if statements

This is for a program I have to do to calculate the day of the week. I need to write an if statement that will do the following: if day is 29 and year is odd, don't calculate dayif ( day == 29 && year == ??? )I know how to do it for the day but I don't know how to do it for the year. (4 Replies)
Discussion started by: pwanda
4 Replies

9. Shell Programming and Scripting

Please help on IF statements.

I had different problem scenarios with IF statement. Can any expert please enlighten me on the difference with these scenarios. Thank you. 1st Scenario: testdate=`date +%Y%m` test=`cat /var/log/database0.$testdate*.log | grep "Errors found during processing" | tail -10` if then ... (4 Replies)
Discussion started by: filthymonk
4 Replies

10. UNIX for Dummies Questions & Answers

if statements

I am trying to change this : Albert Einstein 52 Peter Scott 22 Hilary Smith 48 Joan Bakewell 30 Catherine Maguire 26 into Albert Einstein Pass Peter Scott Fail Hilary Smith Pass Joan Bakewell Fail Catherine Maguire Fail I have to use a if statement that says: if field 3 is... (2 Replies)
Discussion started by: lilas
2 Replies
Login or Register to Ask a Question