Shell scripting newbie problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell scripting newbie problem
# 1  
Old 06-05-2011
Shell scripting newbie problem

I am trying to create a shell script similar to ls, but which only lists directories. I have the first half working (no argument version), but trying to make it accept an argument, I am failing. My logic is sound I think, but I'm missing something on the syntax, I'm guessing in the bolded line? Any help would be greatly appreciated, thanks!

Code:
if [ $# -eq 0 ] ; then
    d=`pwd`
    for i in * ; do
        if test -d $d/$i ; then
            echo "$i:"
        fi
    done
else
    if [ $# -eq 1 ] ; then
        d=$1
        for i in * ; do
            if test -d $d/$i ; then
                echo "$i:"
            fi
        done
    fi
fi

# 2  
Old 06-05-2011
Code:
ls -l |grep ^d

find . -type d

# 3  
Old 06-05-2011
rdc, I know there are probably better tools, but this is an assignment I'm stuck with. :-/

Thanks for the quick reply though!

Last edited by Tibor63; 06-05-2011 at 10:50 PM..
# 4  
Old 06-05-2011
are you passing the absolute path as argument ?

what error you are getting ?
# 5  
Old 06-05-2011
No, I'm not passing the absolute path, just the same type of argument you'd pass "ls" for example.

I've tried using "~" "/" and "..." as arguments... I think I even tried the absolute path once (but can't remember for sure).
# 6  
Old 06-05-2011
If you want to check the passed argument is a directory or not by using

Code:
if test -d $1 ; then
     echo "$i:"
fi

Code:
[ -d $1 ] && echo "$1 is directory" || echo "$1 is not directory"

# 7  
Old 06-06-2011
Quote:
Originally Posted by itkamaraj
If you want to check the passed argument is a directory or not by using
No, the goal is to check if the contents (of the argument directory) are directories or not. I got it working with this code below, but what I don't understand is why the for/if notation I used in the top (no argument version) had to be changed so much for the bottom (argument version). I guess I'm not sure exactly what "i in *" (in the top version) is iterating over. How does it define *?

Code:
if [ $# -eq 0 ] ; then
    d=`pwd`
    for i in * ; do
        if test -d "$d"/"$i" ; then
            echo "$i:"
        fi
    done
else
    if [ $# -eq 1 ] ; then
        d="$1"
        for i in "$d"/* ; do
            if test -d "$i" ; then
                echo "${i##*/}:"
            fi
        done
    fi
fi

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell scripting problem

Hello. I hava homework for university but i cant do it and i need a little help if someone can help me :) I have to do a linux shell script. Write a script that does the following: 1. Check if there is a directory in / home with myDir name. If not, it creates it. 2. In the directory it... (1 Reply)
Discussion started by: alex4o0o
1 Replies

2. Shell Programming and Scripting

Shell Scripting Newbie

Hi Guys, I want to create a shell script to run multiple jobs in sequence. Explaination - If I were to run each jobs individually I would have gone to folder - "abin"(where my shellscript is place) as follows cd abin abin > runappeng.sh abc001 Now, I have list of programs which are like... (8 Replies)
Discussion started by: chaits84
8 Replies

3. Shell Programming and Scripting

Newbie Question: What is php shell scripting?

I know php is a Web Development language but what does it have to do with shell scripting. I might be wrong about php. Is there a CLI? How do I make one and how does it work? Please don't answer these if you have any books on this. Please give names of good beginner books for php shell scripting... (3 Replies)
Discussion started by: orszhak
3 Replies

4. Shell Programming and Scripting

Shell Scripting problem

Hi guys, I am a newbie to shell scripting.Please help me to accomplish this task. Its very urgent,I should create a script which will do the following: i) "cd ~joseph/ ; mkdir -p Bing/Bong ;mkdir -p Bing/Bang" and then create 15 ".txt" files with content "Bing Bang Bong" in "Bong"... (1 Reply)
Discussion started by: mahesh_raghu
1 Replies

5. Shell Programming and Scripting

newbie: writing ksh shell problem

my default profile is using ksh, I tried to write a simple scripts and I had issues, below is my scripts: $ more if_num.ksh USAGE="usage: if_num.ksh" print -n "Enter two numbers: " read x y if ((x=y)) then print "You entered the same number twice." when I tried to executed the... (6 Replies)
Discussion started by: matthew00
6 Replies

6. Shell Programming and Scripting

Shell Scripting NEWBIE - Need Help

Could someone please recommend a very good shell scripting book for me. I would be starting a new job that would require a very good understanding of shell scripting. Please help. (3 Replies)
Discussion started by: ayoka
3 Replies

7. Shell Programming and Scripting

Shell scripting and ls -1 problem

Hey, I'm running knoppix and I'm trying to run a shell script to change multiple lines of text in multiple files #!/bin/sh for i in 'ls-1 test' do sed 's/bob/manny/'g $i > $i.0 mv $i.0 $i done Obviously this isn't the original file, but it's on another non-networked machine. What... (7 Replies)
Discussion started by: afroCluster
7 Replies

8. UNIX for Dummies Questions & Answers

Shell Scripting Newbie

I'm relatively new at this scripting game, just need to learn some basic stuff for data handling. My current need is to write a script that loops through a textfile of filenames, and for each file removes the first line and re-writes that file to a new name. In fact I could do with knowing... (1 Reply)
Discussion started by: mattyjim2
1 Replies

9. Shell Programming and Scripting

Shell scripting newbie - please be gentle.

Hello Gurus, Here's my problem, I have log files that are created automatically once a day by a feature of NetBackup called Vault. I usually move these files manually to a different location so I can FTP them later, however I know that this can be automated and so here's the info: When vault... (2 Replies)
Discussion started by: charliemp3
2 Replies

10. UNIX for Dummies Questions & Answers

shell scripting newbie question

Hi all! I'm a newbie to shell scripting. I want to create a script that will store a line from a text file in a variable so I can then use it to open firefox with that text in the address bar (the text file contains a list of addresses). I have tried the following: #!/bin/sh a='sed -n 2p... (2 Replies)
Discussion started by: jazzman
2 Replies
Login or Register to Ask a Question