Need help with a Bash shell script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help with a Bash shell script
# 1  
Old 04-09-2011
Need help with a Bash shell script

Hi new to the forums looking for some help with some Linux scripting.
SmilieSmilieSmilie
currently working on a script that calculates user information, and i am trying to find out how i would go about getting the amount of regular files, the amount of hidden files, the amount of regular directories, the amount of hidden directories, and the amount of other types of files(AKA links).

I’ve already managed to figure out how many normal files i have using a function that uses the out put of a variable.
this is the code i used

Code:
##this is the variable
files=$(ls -a $HOME)

##this is the function
filesfunc(){
files=$#
for hidden in $#
do
if [ "$hidden" = "." ]
then
$hidden=$(expr $hidden - $files)
fi
done
echo -e "Contains:\t$files regular file(s), and $hidden hidden"
}

##calling it like so
filesfunc $files

that code will get me the correct amount of files but it just shows me the same for hidden.

the output i am looking for is

Code:
contains:  ## regular files, and ## hidden
                 ## directories, and ## hidden
                 ## other types of files.

thank you in advanced for your help and time
Smilie

Last edited by pludi; 04-09-2011 at 04:10 PM..
# 2  
Old 04-09-2011
you can do it in find command itself

regular file
Code:
find . -type f | wc -l

regular directory
Code:
find . -type d | wc -l

hidden file
Code:
find . -type f -name "\.[a-zA-Z0-9]*"  | wc -l

hidden directory
Code:
find . -type d -name "\.[a-zA-Z0-9]*"  | wc -l

This User Gave Thanks to itkamaraj For This Post:
# 3  
Old 04-09-2011
You've got a LONG way to go my friend!

The variable '$#' returns how many positional parameters the function has (a numerical value).

You-re setting the variable 'files' to the output of ls -a $HOME, and then resetting it inside the function to '$#'

for hidden in $#, will NEVER return a value of "." it's numerical! So your [ test ] will not produce a TRUE result.

Do you want regular files that are not hidden?
Directories are still regular files.
What about hidden directories?

Even after correcting the above,
Quote:
$hidden=$(expr $hidden - $files)
Is wrong, because hidden_files are also files, so it should be $files - $hidden
This User Gave Thanks to AlphaLexman For This Post:
# 4  
Old 04-10-2011
Quote:
Originally Posted by AlphaLexman
You've got a LONG way to go my friend!

The variable '$#' returns how many positional parameters the function has (a numerical value).

You-re setting the variable 'files' to the output of ls -a $HOME, and then resetting it inside the function to '$#'

for hidden in $#, will NEVER return a value of "." it's numerical! So your [ test ] will not produce a TRUE result.

Do you want regular files that are not hidden?
Directories are still regular files.
What about hidden directories?

Even after correcting the above,

Is wrong, because hidden_files are also files, so it should be $files - $hidden

yah i am still pretty fresh to linux scripting. thanks for your help tho i really appreciated it Smilie

the output that i want is all the files in home and then all that are hidden
so regular files is basicly total files and the hidden are just the hidden files from the total

Last edited by thrasher210; 04-10-2011 at 01:28 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

In Bash shell - the ps -ef shows only the /bin/bash but the script name is not displayed

In Bash shell - the ps -ef shows only the /bin/bash but the script name is not displayed ? Is there any way to get the script names for the process command ? --- Post updated at 08:39 AM --- in KSH (Korn Shell), my command output shows the script names but when run in the Bash Shell... (3 Replies)
Discussion started by: i4ismail
3 Replies

2. Shell Programming and Scripting

Different behavior between bash shell and bash script for cmd

So I'm trying to pass certain json elements as env vars and use them later on in a script. Sample json: JSON='{ "Element1": "file-123456", "Element2": "Name, of, company written in, a very weird way", "Element3": "path/to/some/file.txt", }' (part of the) script: for s... (5 Replies)
Discussion started by: da1
5 Replies

3. Shell Programming and Scripting

Need help with bash shell script

I need to create digit day script that takes a single numeric argument and then it should print out the day of the week using the number modulo 7 formula e.g: 0 - Sunday 6- Saturday 131 - Friday I am fairly new to unix so I don't know how to use the number modulo 7 formula. Does the script need... (3 Replies)
Discussion started by: lukefrost96
3 Replies

4. Shell Programming and Scripting

Bash shell script to check if script itself is running

hi guys we've had nagios spewing false alarm (for the umpteenth time) and finally the customer had enough so they're starting to question nagios. we had the check interval increased from 5 minutes to 2 minutes, but that's just temporary solution. I'm thinking of implementing a script on the... (8 Replies)
Discussion started by: hedkandi
8 Replies

5. Shell Programming and Scripting

Bash Shell Script

HELP!My program ends after entering one choice---need help making it take multiple inputs,instead of terminating after displaying just one #!/bin/bash# Crude address databaseclear # Clear the screen.echo " Contact List"echo " ------- ----"echo "Choose one of the following... (6 Replies)
Discussion started by: help123
6 Replies

6. Shell Programming and Scripting

Help with bash shell script

Hi, I have a file in which records contains non ascii characters. The records are comma delimited and quoted. The non ascii characters are found in a particular column. Example records "YY","AK000021","Ã","IO","PP" "Y1","AK000022","Ã","PO","PP" "Y2","AK000022","Ã","PO","PP" I need to... (2 Replies)
Discussion started by: akshu.agni
2 Replies

7. Shell Programming and Scripting

Bash shell script- help

I need to invoke a program on remote server using ssh in a shell script. In addition i would like to capture date/time and if there is any errors , then script should write to log file. can someone please help me out? (1 Reply)
Discussion started by: sam101
1 Replies

8. Shell Programming and Scripting

Bash Shell script--need help

Hi all, i am beginner to unix and trying out a shell script which does the following. i have to calculate a persons salary. his salary is read from the keyboard. he has two types of deductions. 40% as dearness allowance and 20% as house rent. i have to print the gross salary. here is the code... (5 Replies)
Discussion started by: Irishboy24
5 Replies

9. UNIX for Dummies Questions & Answers

Bash shell script

Hi Guys, I am trying to alter a script for my company. I need the start of it to go something like this. User is asked to input 8 numbers 8 numbers are written to a txt file ***** ***** ***** txt file is read ***** ***** The text file gets read in between other files represented by... (2 Replies)
Discussion started by: outthere_3
2 Replies

10. UNIX for Dummies Questions & Answers

need help with bash shell script

Hi guys! I have just started with shell programming!! I am having pronblem with variable subsitutuion. when i do egrep "*" marks this will give me the pattern match. but how can i catch the output of that result in a variable. if i say result = egrep "*" marks it gives me syntax... (2 Replies)
Discussion started by: vmtailor
2 Replies
Login or Register to Ask a Question