Sponsored Content
Top Forums Shell Programming and Scripting Script in bash that works only some of the time Post 302960918 by twinion on Sunday 22nd of November 2015 02:10:56 AM
Old 11-22-2015
Quote:
Originally Posted by balajesuri
I don't see why you're performing cat on a directory. Is this a typo? If not, you will not get your intended results. Also, you can grep directly on the file instead of piping the cat output to grep. Read this "useless use of cat".
sorry that is a typo when written into the forum

mytest15=`cat /pathtofile/filename | grep -c filename.$DATE.TXT | grep TRL | wc -l`

basically i know the file has completed writing when it has the word TRL in the file.

---------- Post updated at 02:10 AM ---------- Previous update was at 02:04 AM ----------

Quote:
Originally Posted by Peasant
Other then mentioned, use #!/bin/bash -x and examine the nohup.out during the hang.

If you are on linux system, inotify should provide much better interface for actions on file changes.

Please, if you can, post the entire code and/or explain what are you trying to do so perhaps a better approach could be written.

Hope that helps
Regards
Peasant.
-x i will give that a try.

im positive it could be written a hell of alot better as im still very new.

what the script does is waits for a file to be written to a directory.
when that file arrives, it then waits for it to finish being built by looking for TRL inside the file.
Then it renames the file and moves it.

as i said ran ti yesterday worked fine.
ran it today in the background it didnt see that the file arrived.
so i killed it then ran it
ran it normally...it spotted the file and worked as expected.
i just dont understand why it was in the background it didnt notice that the file was there, and yesterday it worked fine
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Works from bash prompt, but not from script!

I'm trying to use unison from bash on windows with cygwin. I don't know if this is a cygwin question, bash question or unison question. Since I always get reprimanded by the cygwin mailing list for assuming it is a cygwin problem, I'll assume it is a bash question. The following commands work... (7 Replies)
Discussion started by: siegfried
7 Replies

2. Shell Programming and Scripting

Script works with bash 3.0 but not 3.2.

Hello, So my knowledge of bash scripting is not that great and I have been trying to solve this problem on my own for awhile to no avail. Here's the error I get when running it with an OS that uses bash 3.2.x: testagain.sh: line 10: *-1: syntax error: operand expected (error token is... (2 Replies)
Discussion started by: forkandspoon
2 Replies

3. Shell Programming and Scripting

bash script to count the time of transaction

Halo, Bash Script can get the time of process the trasaction or not? For example, bash script use to procee the trasaction, like select and checking.. then generate the XML. after it, i need to get the time which to count the process. Anyone can help me? Thank you (1 Reply)
Discussion started by: ryanW
1 Replies

4. Shell Programming and Scripting

How to compare time in bash script?

Hi, Anyone know how to compare the time in bash script? I want to compare say 30 min. to 45 min. ( AIX ) Thanks. (1 Reply)
Discussion started by: sumit30
1 Replies

5. Shell Programming and Scripting

Ftp script hangs for first time,but works every second time

Hi I have an ftp script which works fine when i execute through a test scheduler(UC4), but when i run it through the prod scheduler(UC4), it hungs indefinetely, when we cancel the job and re-run it it works perfectly fine. here is the code,, any idea why this is happening ???? ... (1 Reply)
Discussion started by: selvankj
1 Replies

6. Shell Programming and Scripting

Need bash script to ping the servers and rename the output file each time the script is ran

HI, I have a file serverlist in that all host names are placed. i have written a small script #./testping #! /bin/bash for i in `cat serverlist` do ping $i >> output.txt done so now it creates a file output.txt till here fine.. now each time i run this script the output file... (4 Replies)
Discussion started by: madhudeva
4 Replies

7. UNIX for Dummies Questions & Answers

Bash script dont works when executed as cronjob

Hello, i have cronjob: crontab -l * * * * * pkill -f domexpcheck;sh /root/dom/domexpcheck.sh it runs: /var/log/cron Mar 25 12:11:01 vps crond: (root) CMD (pkill -f domexpcheck;sh /root/dom/domexpcheck.sh) but somehow script dont run properly via cronjob. But when i execute cronjob... (7 Replies)
Discussion started by: postcd
7 Replies

8. Shell Programming and Scripting

Bash Script Looping all the time

Hello, I have a database file, named data.txt, and a shell script (convert.sh) to convert data.txt from columns to row. Output file name will be column_to_row.txt In this example data.txt has only four rows. Format of data.txt is: info name surname telefon_nr Data.txt info boris... (1 Reply)
Discussion started by: baris35
1 Replies

9. Shell Programming and Scripting

Calling bash script works when called manually but not via Cron?

Hi, I've got a Bash backup script I'm trying to run on a directory via a cron job nightly. If I ssh in and run the script manually it works flawlessly. If I set up the cron to run evertything is totally messed up I don't even know where to begin. Basically the path structure is ... (6 Replies)
Discussion started by: wyclef
6 Replies

10. UNIX for Beginners Questions & Answers

Command works interactively but not in bash script

The below command works in the terminal interactively but not as part of a bash script. I though maybe I needed to escape the "$dir" so it isn't interpreted literally, but that's not it. Thank you :). interactively in terminal dir=/path/to new=$(ls "$dir"/*.csv -tr | tail -n 1) && echo... (6 Replies)
Discussion started by: cmccabe
6 Replies
nohup(1)						      General Commands Manual							  nohup(1)

NAME
nohup - Runs a utility ignoring hangups and quits SYNOPSIS
nohup utility [argument...] Note The C shell has a built-in version of the nohup command. If you are using the C shell, and want to guarantee that you are using the com- mand described here, you must specify the full path /usr/bin/nohup. See the csh(1) reference page for a description of the built-in com- mand. STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: nohup: XCU5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. OPTIONS
None OPERANDS
The name of a command to be invoked. Optional arguments required by the utility specified for invokation. DESCRIPTION
The nohup command runs utility, ignoring all hangups and QUIT signals. You can use this command to run programs in the background after logging off the system. To run a nohup command in the background, add an & (ampersand) to the end of the command. If nohup output is redirected to a terminal or is not redirected at all, the output is appended to the file nohup.out. If the file is cre- ated, the permission bits are set to Owner Read and Owner Write(600). If nohup.out is not writable in the current directory, the output is redirected to $HOME/nohup.out. If neither file can be created nor opened for appending, utility is not invoked. If standard error is a terminal, all output written to standard error is appended to the file receiving standard output. The nohup command accepts just one utility as an argument. To apply nohup to a pipeline or list of commands, enter the pipeline or list in a shell script file. Then run sh as utility using the following format: nohup sh -c file [Tru64 UNIX] You can also assign the shell file execute permission and run it as the utility in the form: nohup file NOTES
The term utility, rather than the term command, describes the argument to nohup because shell compound commands, pipelines, special built- in programs, and the like, cannot be handled directly. In addition, the term utility includes user application programs and shell scripts, not just the standard utilities. EXIT STATUS
The nohup command returns the following exit values: The specified utility was found, but could not be invoked. The error occurred in the nohup utility or the specified utility could not be found. The exit status is otherwise that of the utility. EXAMPLES
To leave a command running after logging out (sh only), enter: nohup find / -print & Shortly after you enter this, the following is displayed: 670 $ Sending output to nohup.out The process ID number changes to the background process started by the & (ampersand), in this case, 670. The $ (dollar sign) is the shell prompt. The message following informs you that the output from the find command is in the file nohup.out. Sending output... You can log out after you see these messages, even if the find command has not finished yet. If you are using csh, the built-in command nohup is executed instead of the system command. To execute the nohup system command, you must enter an absolute path. To do the same, but redirect the standard output to a different file, enter: nohup find / -print >filenames & This runs the find command and stores its output in a file named filenames. Now only the process ID and prompt are displayed. Wait for a second or two before logging out, because the nohup command takes a moment to start the command you specified. If you log out too quickly, utility may not run at all. Once utility has started, logging out does not affect it. To run more than one com- mand, use a shell script. For example, if you include the following shell script: comm -23 fi4 fi5 | comm -23 - fi6 | join -a1 - fi7 > comm.out and name it ncomm, you can run nohup for all of the commands in ncomm by entering: nohup sh ncomm If you assign ncomm Execute permission, you can obtain the same results by issuing the command: nohup ncomm To run this command in the background, enter: nohup ncomm & ENVIRONMENT VARIABLES
The following environment variables affect the execution of nohup: Provides a default value for the internationalization variables that are unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari- ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value, overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multibyte characters in arguments). Determines the locale for the for- mat and contents of diagnostic messages written to standard error. Determines the location of message catalogues for the processing of LC_MESSAGES. Determines the search path that will be used to locate the command to be invoked. FILES
Standard output and standard error file for nohup. SEE ALSO
Commands: csh(1), ksh(1), nice(1), Bourne shell sh(1b), POSIX shell sh(1p) Functions: sigaction(2) Standards: standards(5) nohup(1)
All times are GMT -4. The time now is 06:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy