Sponsored Content
Top Forums Shell Programming and Scripting Can I improve this script ??? Post 30345 by Perderabo on Monday 21st of October 2002 09:08:09 AM
Old 10-21-2002
Hmmm, I musta missed your first reply. I can't remember what I was doing last Christmas eve. (I guess that explains it though...) We have a rule against bumping a thread if you don't immediately get an answer. But you needn't wait 10 months.

Doing ${X} is only absolutely required in something like "echo ${X}zzzzz". Without the brackets the variable name will be wrong. It's also required to invoke any of the shells advanced processing. ${x%%%} will strip a % character. But, $x%%% will just add three of them. But I often use the brackets just to make my scripts more readable.

You can get around the error message by doing:
if [ "$a" -gt "$b" ]
or switching to double brackets:
if [[ $a -gt $b ]]

But this will just make the error go away. The source of the problem is that the variables don't contain the right values. You need to echo their values just before the if statement. One of them must be empty which is why your test wants more tokens. And the other contains 1% which seems odd since you are stripping it. Or maybe one of the variables is something like "1% plus garbage" so the now internal % isn't stripped and the "plus garbage" is confusing the test. This is why you need to echo them is see what's happening.

Looking at the rest of your script, I can't really follow what's happening, but it's common for directories to be old. If you have /directory/subdirectory/files, as you add or remove files to the subdirectory, you are not affecting the mtime of directory. And rm will not remove a directory. You need to use rmdir.

Also you can't do
if ! [ -d jjjj ]

switch that to
if [ ! -d jjjj ]
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Any way to improve performance of this script

I have a data file of 2 gig I need to do all these, but its taking hours, any where i can improve performance, thanks a lot #!/usr/bin/ksh echo TIMESTAMP="$(date +'_%y-%m-%d.%H-%M-%S')" function showHelp { cat << EOF >&2 syntax extreme.sh FILENAME Specify filename to parse EOF... (3 Replies)
Discussion started by: sirababu
3 Replies

2. Shell Programming and Scripting

Improve the performance of a shell script

Hi Friends, I wrote the below shell script to generate a report on alert messages recieved on a day. But i for processing around 4500 lines (alerts) the script is taking aorund 30 minutes to process. Please help me to make it faster and improve the performace of the script. i would be very... (10 Replies)
Discussion started by: apsprabhu
10 Replies

3. Shell Programming and Scripting

Want to improve the performance of script

Hi All, I have written a script as follows which is taking lot of time in executing/searching only 3500 records taken as input from one file in log file of 12 GB Approximately. Working of script is read the csv file as an input having 2 arguments which are transaction_id,mobile_number and search... (6 Replies)
Discussion started by: poweroflinux
6 Replies

4. UNIX for Dummies Questions & Answers

[please] improve my shell/SQL*Plus script

Hi We generate with PL/SQL *.csv files, archive them and mail to the customer. Here is my script (Solaris 10, ksh): #!/bin/ksh # Unix Shell Script Structure for PL/SQL queries with SQL*Plus . ~/.profile scriptdir=/opt/ora/scripts queryname1=example... (1 Reply)
Discussion started by: slashdotweenie
1 Replies

5. Shell Programming and Scripting

Var Check Script (Help improve if possible)

I am working on a script to check the var on all of my systems. Can someone help me fix it to work better or give me suggestions. #!/bin/ksh IN=/path/to/list_of_workstations.txt while read hostnames do if ping $hostnames 1 | grep alive > /dev/null then percent=`ssh -q... (3 Replies)
Discussion started by: whotippedmycow
3 Replies

6. UNIX for Dummies Questions & Answers

How to improve the performance of this script?

Hi , i wrote a script to convert dates to the formate i want .it works fine but the conversion is tkaing lot of time . Can some one help me tweek this script #!/bin/bash file=$1 ofile=$2 cp $file $ofile mydates=$(grep -Po '+/+/+' $ofile) # gets 8/1/13 mydates=$(echo "$mydates" | sort |... (5 Replies)
Discussion started by: vikatakavi
5 Replies

7. Shell Programming and Scripting

Improve sftp script

Dear all, I have written two scripts to transfer files to another server outside the company. One is a batch script , and the other script calls the batch script, send the files and archive the file sent. The problem is, that I want to get the list of files which have been uploaded the the... (10 Replies)
Discussion started by: arrals_vl
10 Replies

8. Shell Programming and Scripting

How to improve an script?

Gents. I have 2 different scripts for the same purpose: raw2csv_1 Script raw2csv_1 finish the process in less that 1 minute raw2csv_2 Script raw2csv_2 finish the process in more that 6 minutes. Can you please check if there is any option to improve the raw2csv_2. To finish the job... (4 Replies)
Discussion started by: jiam912
4 Replies

9. Shell Programming and Scripting

Improve script and get new output file

Gents, Using the following script, I got the changes as desired in the output file called (spread_2611.x01.new). Complete file as input (spread_2611.x01). Can you please have a look to my script and improve it please. :b: Also I would like to I get a additional selecting only the records... (21 Replies)
Discussion started by: jiam912
21 Replies

10. Shell Programming and Scripting

Improve script

Gents, Is there the possibility to improve this script to be able to have same output information. I did this script, but I believe there is a very short code to get same output here my script awk -F, '{if($10>0 && $10<=15) print $6}' tmp1 | sort -k1n | awk '{a++} END { for (n in a )... (23 Replies)
Discussion started by: jiam912
23 Replies
rm(1)								   User Commands							     rm(1)

NAME
rm, rmdir - remove directory entries SYNOPSIS
/usr/bin/rm [-f] [-i] file... /usr/bin/rm -rR [-f] [-i] dirname... [file...] /usr/xpg4/bin/rm [-fiRr] file... /usr/bin/rmdir [-ps] dirname... DESCRIPTION
/usr/bin/rm /usr/xpg4/bin/rm The rm utility removes the directory entry specified by each file argument. If a file has no write permission and the standard input is a terminal, the full set of permissions (in octal) for the file are printed followed by a question mark. This is a prompt for confirmation. If the answer begins with y (for yes), the file is deleted, otherwise the file remains. If file is a symbolic link, the link will be removed, but the file or directory to which it refers will not be deleted. Users do not need write permission to remove a symbolic link, provided they have write permissions in the directory. If multiple files are specified and removal of a file fails for any reason, rm will write a diagnostic message to standard error, do noth- ing more to the current file, and go on to any remaining files. If the standard input is not a terminal, the utility will operate as if the -f option is in effect. /usr/bin/rmdir The rmdir utility will remove the directory entry specified by each dirname operand, which must refer to an empty directory. Directories will be processed in the order specified. If a directory and a subdirectory of that directory are specified in a single invoca- tion of rmdir, the subdirectory must be specified before the parent directory so that the parent directory will be empty when rmdir tries to remove it. OPTIONS
The following options are supported for /usr/bin/rm and /usr/xpg4/bin/rm: -r Recursively removes directories and subdirectories in the argument list. The directory will be emptied of files and removed. The user is normally prompted for removal of any write-protected files which the directory contains. The write-protected files are removed without prompting, however, if the -f option is used, or if the standard input is not a terminal and the -i option is not used. Symbolic links that are encountered with this option will not be traversed. If the removal of a non-empty, write-protected directory is attempted, the utility will always fail (even if the -f option is used), resulting in an error message. -R Same as -r option. /usr/bin/rm The following options are supported for /usr/bin/rm only: -f Removes all files (whether write-protected or not) in a directory without prompting the user. In a write-protected directory, how- ever, files are never removed (whatever their permissions are), but no messages are displayed. If the removal of a write-protected directory is attempted, this option will not suppress an error message. -i Interactive. With this option, rm prompts for confirmation before removing any files. It overrides the -f option and remains in effect even if the standard input is not a terminal. /usr/xpg4/bin/rm The following options are supported for /usr/xpg4/bin/rm only: -f Does not prompt for confirmation. Does not write diagnostic messages or modify the exit status in the case of non-existent oper- ands. Any previous occurrences of the -i option will be ignored. -i Prompts for confirmation. Any occurrences of the -f option will be ignored. /usr/bin/rmdir The following options are supported for /usr/bin/rmdir only: -p Allows users to remove the directory dirname and its parent directories which become empty. A message is printed to standard error if all or part of the path could not be removed. -s Suppresses the message printed on the standard error when -p is in effect. OPERANDS
The following operands are supported: file A path name of a directory entry to be removed. dirname A path name of an empty directory to be removed. USAGE
See largefile(5) for the description of the behavior of rm and rmdir when encountering files greater than or equal to 2 Gbyte ( 2 **31 bytes). EXAMPLES
The following examples are valid for the commands shown. /usr/bin/rm /usr/xpg4/bin/rm Example 1: Removing directories The following command: example% rm a.out core removes the directory entries a.out and core. Example 2: Removing a directory without prompting The following command: example% rm -rf junk removes the directory junk and all its contents, without prompting. /usr/bin/rmdir Example 3: Removing empty directories If a directory a in the current directory is empty, except that it contains a directory b, and a/b is empty except that it contains a directory c, the following command will remove all three directories: example% rmdir -p a/b/c ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of rm and rmdir: LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, and NLSPATH. EXIT STATUS
The following exit values are returned: 0 If the -f option was not specified, all the named directory entries were removed; otherwise, all the existing named directory entries were removed. >0 An error occurred. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: /usr/bin/rm /usr/bin/rmdir +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ |CSI |enabled | +-----------------------------+-----------------------------+ /usr/xpg4/bin/rm +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWxcu4 | +-----------------------------+-----------------------------+ |CSI |enabled | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
rmdir(2), unlink(2), attributes(5), environ(5), largefile(5), standards(5) DIAGNOSTICS
All messages are generally self-explanatory. It is forbidden to remove the files "." and ".." in order to avoid the consequences of inadvertently doing something like the following: example% rm -r .* It is forbidden to remove the file "/" in order to avoid the consequences of inadvertently doing something like: example% rm -rf $x/$y or example% rm -rf /$y when $x and $y expand to empty strings. NOTES
A - permits the user to mark explicitly the end of any command line options, allowing rm to recognize file arguments that begin with a -. As an aid to BSD migration, rm will accept -- as a synonym for -. This migration aid may disappear in a future release. If a -- and a - both appear on the same command line, the second will be interpreted as a file. SunOS 5.10 26 Jan 2001 rm(1)
All times are GMT -4. The time now is 11:39 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy