[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[LDM #UKU-190526]: LDM - PIPE usage in pqact.conf and bash scripts
- Subject: [LDM #UKU-190526]: LDM - PIPE usage in pqact.conf and bash scripts
- Date: Fri, 13 Apr 2007 02:00:39 -0600
Hi Mike,
re:
> Hmmm. Looks like my version of Bash and yours are different.
I am not sure that it makes any difference, but ldmfile.sh uses
Bourne shell syntax (#!/bin/sh), not bash.
> Mine has no "data" command,
Your follow-up email showed that you noticed that this should be
'date' not 'data'...
> "basename" appears to need an operand
> (apparently $1 just isn't good enough. I don't know why not!) and "sed"
> is behaving in ways I don't understand.
I think this is because your declaration of which shell to use was not
the first line of your script.
> Other than that, I'm having a fine night! (??).
:-)
> I've attached the log
> file for the script for clarification.
>
> Can you make any suggestions regarding this confusing Bash script?
The following is my slightly modified version of your script. I have
verified that this works nicely on my Fedora Core 6 development machine
at home:
#!/bin/bash
#---------------------------------------------------------------------
#
# Name: ldmfile.bash
#
# Purpose: file an LDM product and log the receipt of the product
# Note: modify the "log" file for a specific use!
#
# History: 20070412 - Created from example Bourne shell script
# provided by Unidata
#
#------------------------------------------------------------------------
# set log file
LOG=/usr/local/ldm/MADIS_data/logs/MADIS_log
exec >>$LOG 2>&1
# Create directory structure
FNAME=$(basename $1)
DIRS=$(echo $1 | sed s/$FNAME//)
mkdir -p $DIRS
# Write stdin to the designated file and log its filing
echo $(date -u +'%b %d %T') $(basename $0)\[$$\]: FILE $1
cat > $1
# Log errors
if false; then
logger -p local0.error "Error writing input file, exit status = $?"
fi
# done
exit 0
The changes I made were:
- specify the shell to use in the first line of the script
- remove the '-' before the 's' in the sed line (i.e., 'sed s/$FNAME//'
not 'sed -s/$FNAME//')
- changed the message that logger will write on 'cat > $1' failure (not
tested)
> Thanks
No worries. I think you should be on your way now...
Cheers,
Tom
****************************************************************************
Unidata User Support UCAR Unidata Program
(303) 497-8642 P.O. Box 3000
address@hidden Boulder, CO 80307
----------------------------------------------------------------------------
Unidata HomePage http://www.unidata.ucar.edu
****************************************************************************
Ticket Details
===================
Ticket ID: UKU-190526
Department: Support LDM
Priority: Normal
Status: Closed