If no input then set directory to current


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting If no input then set directory to current
# 1  
Old 09-24-2015
If no input then set directory to current

Hi GUys

I have a script where i am counting the number of files that the user has read permissions to in a folder . They are asked for this folder at the start

if they dont enter anything then i want to be able to do the search on the current directory, can you help me with that part please ?

I am just using find commands for the permissions bit

Code:
echo " choose the dir "
read dir

fileread=$(find "$dir" -type f -perm u+r | wc -l)

echo "you have read permissions to $fileread files


Last edited by vbe; 09-24-2015 at 12:14 PM.. Reason: code tags
# 2  
Old 09-24-2015
Code:
find "${dir:-.}" -type f -perm u+r | wc -l

See Bash Reference Manual: Shell Parameter Expansion.
This User Gave Thanks to neutronscott For This Post:
# 3  
Old 09-24-2015
They will have to press "enter" to terminate the read. Did you consider read's -t option (timeout) to terminate without ANY input?
# 4  
Old 09-24-2015
im getting bad substitution on that

case $# in
0) dir=${dir.-.}
esac
# 5  
Old 09-24-2015
Use a colon instead dot (exactly copying neutronscott's proposal).
# 6  
Old 09-24-2015
Please add "code" tags around your code!
According to your description you want at least u+r permissions (other permissions are allowed), so it must be -u+r
Code:
echo " choose the dir "
read dir
fileread=$(find "${dir:-.}" -type f -perm -u+r | wc -l)
echo "you have read permissions to $fileread files"

Or with parameters
Code:
fileread=$(find "${@:-.}" -type f -perm -u+r | wc -l)

NB the $@ expands within " " (unlike $*). This makes it possible to pass a dirname with embedded space (for exampe "this dir").
# 7  
Old 09-24-2015
Manually longhand using OSX 10.7.5, default bash terminal...
Always initialise the current directory before letting the timeout continue...
Code:
Last login: Thu Sep 24 20:02:19 on ttys000
AMIGA:barrywalker~> mydir=$(pwd)
AMIGA:barrywalker~> echo $mydir
/Users/barrywalker
AMIGA:barrywalker~> ls "$mydir"
03080.sh		03240.sh.txt		Downloads
03083.sh		03241.sh.txt		Library
03090.sh		2015			Movies
03100.sh		AAWG			Music
03120.sh		AudioScope.sh		Pictures
03140.sh		AudioScope.sh.txt	Public
03180.sh		AudioScope.sh~		Scope
03197.sh		AudioScope.txt		URL
03220.sh		BW_HELP			hexstring
03220.txt		Desktop			listing.txt
03240.sh		Documents		sox-14.4.0
AMIGA:barrywalker~> read -t5 mydir
/tmp/
AMIGA:barrywalker~> echo $mydir
/tmp/
AMIGA:barrywalker~> ls "$mydir"
launch-Az884J		launch-qrFcE6		launchd-119.lqY2J3
launch-PSV50N		launch-zRFZQJ		launchd-253.YZiA7D
AMIGA:barrywalker~> mydir=$(pwd)
AMIGA:barrywalker~> read -t5 mydir
AMIGA:barrywalker~> echo $mydir
/Users/barrywalker
AMIGA:barrywalker~> ls "$mydir"
03080.sh		03240.sh.txt		Downloads
03083.sh		03241.sh.txt		Library
03090.sh		2015			Movies
03100.sh		AAWG			Music
03120.sh		AudioScope.sh		Pictures
03140.sh		AudioScope.sh.txt	Public
03180.sh		AudioScope.sh~		Scope
03197.sh		AudioScope.txt		URL
03220.sh		BW_HELP			hexstring
03220.txt		Desktop			listing.txt
03240.sh		Documents		sox-14.4.0
AMIGA:barrywalker~> _

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. AIX

How to set owner and permission for files/directory in directory in this case?

Hi. My example: I have a filesystem /log. Everyday, log files are copied to /log. I'd like to set owner and permission for files and directories in /log like that chown -R log_adm /log/* chmod -R 544 /log/*It's OK, but just at that time. When a new log file or new directory is created in /log,... (8 Replies)
Discussion started by: bobochacha29
8 Replies

2. UNIX for Dummies Questions & Answers

How to email the current directory?

Hi, I'm very new to Unix, but have been given a command to type in which is : mail -s <email subject goes here> <my email address> <success.txt this command is quite a basic one and sends an email containing the contents of the file "success.txt" to whatever email I put in with the subject of... (2 Replies)
Discussion started by: rnmuk
2 Replies

3. Shell Programming and Scripting

Need to delete large set of files (i.e) close to 100K from a directory based on the input file

Hi all, I need a script to delete a large set of files from a directory under / based on an input file and want to redirect errors into separate file. I have already prepared a list of files in the input file. Kndly help me. Thanks, Prash (36 Replies)
Discussion started by: prash358
36 Replies

4. UNIX for Advanced & Expert Users

current directory in awk

Hello, I want to use the string with the current directory in my awk command. I tried: 'pwd=system("pwd")' but it doesn't work. can please help somebody? (2 Replies)
Discussion started by: daWonderer
2 Replies

5. HP-UX

Unable to Set Prompt to current working DIR

HPUX does not recognise \h,\w,\u to display the hostname,working directory and username respectively. So how do i set the PS1 variable to display my current working Directory as my prompt? I also tried PS1=$PWD, But it keeps showing the same directory path as prompt which PWD was holding at... (3 Replies)
Discussion started by: Amit Kulkarni
3 Replies

6. Shell Programming and Scripting

tarball of current directory

I wanna make a backup tarball. I wanna write a script that makes tarball of the current directory. There are lots of files so I cant type all files, I wanna make the tarball by excluding few files. Like there 1000 files in a directory I wanna create a tarball containing 98 files of that... (1 Reply)
Discussion started by: nishrestha
1 Replies

7. UNIX for Dummies Questions & Answers

How to compare current time with the input to variant?

Hi all, I have a simple script follow: ------------- #!/bin/bash echo -n " Enter the date of today: " read dateoftoday ------------- Now I want to compare the variant $dateoftoday with date of the system (now) in order to prevent user inputs the past date to $dateoftoday. I want to make... (3 Replies)
Discussion started by: axn_boy
3 Replies

8. Shell Programming and Scripting

Finding files in current directory when 100,000's files in current directory

Hi All I was wondering what is the most efficient way to find files in the current directory(that may contain 100,000's files), that meets a certain specified file type and of a certain age. I have experimented with the find command in unix but it also searches all sub directories. I have... (2 Replies)
Discussion started by: kewong007
2 Replies

9. Shell Programming and Scripting

filename in current directory

I want to perform a task on all the files in the current directory but I'd like to loop through them one at a time. How do I tell it to give me the first filename? (2 Replies)
Discussion started by: calgone337
2 Replies

10. UNIX for Advanced & Expert Users

cannot determine current directory

Hi, when I execute some simple commands on my solaris system, I am getting the following warning message: Could anybody tell me what could be the reason Ex:- If I give the command, which ls Warning: cannot determine current directory ... (15 Replies)
Discussion started by: axes
15 Replies
Login or Register to Ask a Question