shell script help please


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers shell script help please
# 1  
Old 11-12-2010
Data shell script help please

Code:
#!/bin/bash

x = `find / -type f -inum +1 -mtime -30 -exec ls -lu {} \; 2>/dev/null | awk '{print $6,$7,$8}'`

y = `find / -type f -inum +1 -mtime -30 -exec ls -lc {} \; 2>/dev/null | awk '{print $6,$7,$8}'`

z = `find / -type f -inum +1 -mtime -30 -exec ls -lc {} \; 2>/dev/null | awk '{print $9}'`

echo "$x $y $z"

i don't understand why i do not get an output.
when i execute these commands in the shell, they work perfectly but when i assign them a variable and do echo to print the variables, no output when i execute the shell. the shell waits for command to end.

Last edited by Scott; 11-16-2010 at 05:54 PM.. Reason: Please use code tags
# 2  
Old 11-12-2010
You cannot have variable[space] = [space] `code here `

Remove all spaces around the =
This User Gave Thanks to jim mcnamara For This Post:
# 3  
Old 11-12-2010
Code:
a=`find / -type f -inum +1 -mtime -30 -exec ls -lu {} \; 2>/dev/null | awk '{print $6,$7,$8}'`

b=`find / -type f -inum +1 -mtime -30 -exec ls -lc {} \; 2>/dev/null | awk '{print $6,$7,$8}'`

c=`find / -type f -inum +1 -mtime -30 -exec ls -lc {} \; 2>/dev/null | awk '{print $9}'`

removed the spaces in between, yet no output.
i execute the script but need to do a ctrl + c to escape.

---------- Post updated at 08:22 PM ---------- Previous update was at 08:19 PM ----------

the commands are working seperately of the script so i know it's not a syntax error with the commands at least.

---------- Post updated at 09:22 PM ---------- Previous update was at 08:22 PM ----------

works on a smaller subdirectory but not root directory. perplexed as to why.

Last edited by Scott; 11-16-2010 at 05:54 PM..
# 4  
Old 11-12-2010
Based on the number of volumes/files on your server, find can take a substantial amount of time to search something from /.

Time one of the find commands separately and multiply that time by 3. That is the amount of time your script will probably take before giving any output at all.
This User Gave Thanks to a_programmer For This Post:
# 5  
Old 11-12-2010
Back to first principles.

The commands as posted will not produce any output. They will just put concatonated values into the three environment variables $a $b $c . There is a limited size to an environment variable.
Also, there is no point to the "-inum +1" cause.

What are you trying to do, and what do you want the output to look like?
This User Gave Thanks to methyl For This Post:
# 6  
Old 11-12-2010
hey methyl,
trying to look for regular files, with one or more inodes, modified within the last 30 days.
variable a would display time last accessed, b would display time last modified and c would display full path of the file.
could i have done without the-inum +1? thanks.
# 7  
Old 11-12-2010
It's a waste of time to traverse the file tree three times when you only need to do it once. You didn't say which flavour of Unix, but if you have a stat command installed, something like this produces 5 columns of output for each file that matches your find criteria and only one pass across the filesystem (in terms of find) is needed. Output, left to right, is date/time of last access, date/time of last modificaton, and file name.

Code:
find / -type f -mtime -30 | xargs stat -c "%x %y %n"|sed -E 's/[.][0-9]+//g; s/ -[0-9]+//g'

The sed just strips decimals from the time and the timezone offset.

Depending on what tools you have installed, the -E option to sed might need to be -R. On a FreeBSD system the stat command will be something like this:

Code:
 xargs stat -f "%Sa %Sm %N"

As for whether or not to use -inum...
The way I read the man page for find, inum is used to match a specific inum. As a file can only have one inum using a +1 construct makes no sense (at least not to me).

Last edited by agama; 11-12-2010 at 08:22 PM.. Reason: clarification
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Shell script newbie- how to generate service log from shell script

Hi, I am totally a newbie to any programming languages and I just started an entry level job in an IT company. One of my recent tasks is to create a script that is able to show the log file of linux service (i.e. ntpd service) lets say, if I run my script ./test.sh, the output should be... (3 Replies)
Discussion started by: xiaogeji
3 Replies

2. Shell Programming and Scripting

Pass C shell array to another C shell script(csh) and shell(sh)

Dear Friends, Please help me on this my script name is send.csh In this i have written the statement like this set args = ( city state country price ) I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell or how to pass to... (2 Replies)
Discussion started by: SA_Palani
2 Replies

3. Shell Programming and Scripting

How to write config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

4. UNIX for Dummies Questions & Answers

How to write Config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

5. Shell Programming and Scripting

Unable to pass shell script variable to awk command in same shell script

I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist. diff=$1$2.diff id=$2 new=new_$diff echo "My id is $1" echo "I want to sync for user account $id" ##awk command I am using is as below cat $diff | awk... (2 Replies)
Discussion started by: Ashunayak
2 Replies

6. Shell Programming and Scripting

Correct shell script to Call One shell script from another shell script

Hi All, I have new for shell scripting. Problem : I have one scrip at serv1 and path of server is /apps/dev/provimage/scripts and script name:extract_ancillary.bat. I need to call this script at server2(my working server) and execute at server2 . Please let me know how to build the... (5 Replies)
Discussion started by: Vineeta Nigam
5 Replies

7. Shell Programming and Scripting

call another shell script and pass parameters to that shell script

Hi, I basically have 2 shell scripts. One is a shell script will get the variable value from the user. The variable is nothing but the IP of the remote system. Another shell script is a script that does the job of connecting to the remote system using ssh. This uses a expect utility in turn. ... (2 Replies)
Discussion started by: sunrexstar
2 Replies

8. Shell Programming and Scripting

How to use ssh execute other shell script on other host (shell script include nohup)?

i want use ssh on the host01 to execute autoexec.sh on the host02 like following : host01> ssh host02 autoexec.sh autoexec.sh include nohup command like follwing : nohup /home/jack/deletedata.sh & after i execute ssh host02 autoexec.sh one the host01. i can't found deletedata.sh... (1 Reply)
Discussion started by: orablue
1 Replies

9. Shell Programming and Scripting

invoking a shell script inside cgi shell script

Hi, I have an HTML form through which I get some text as input. i need to run a shell script say script.sh inside a perl-cgi script named main_cgi.sh on the form input. I want to write the contents of the form in a file and then perform some command line operations like grep, cat on the text... (2 Replies)
Discussion started by: smriti_shridhar
2 Replies

10. Shell Programming and Scripting

How to Run a shell script from Perl script in Parent shell?

Hi Perl/UNIX experts, I have a problem in running a shell script from my perl script (auto.pl). I run the perl script using perl auto.pl from the shell prompt The shell script picks the files in "input" folder and procesess it. The shell script blue.sh has this code. export... (16 Replies)
Discussion started by: hifake
16 Replies
Login or Register to Ask a Question