Here is a simple script. It writes the current time to specific files in a directory.
The arguments are the names of the files to write the date to (without path nor extension).
Code:
root:~# cat /usr/local/bin/dummy.sh
#!/bin/sh -e
for file in $@; do
date >> /var/lib/$file.dat
done
The command
Code:
root:~# dummy.sh a1 a2 a3
will write the current time to
Code:
/var/lib/a1.dat
/var/lib/a2.dat
/var/lib/a3.dat
I'd like to allow wildcards in the arguments.
But the command
Code:
root:~# dummy.sh a*
will try to write the current time to files in /var/lib/ named after files in /root/a* plus the extension .dat.
To achieve my goal, I'd need globbing to be disabled in
If you assume that /var/lib/a*.dat will expand to something like /var/lib/ab.dat /var/lib/ac.dat, your command line will become date >> /var/lib/ab.dat /var/lib/ac.dat and will fail. Only the first word after >> will be considered as the file-name to be appended to and the rest of the file-names will be considered as arguments to date.
Last edited by elixir_sinari; 10-01-2012 at 10:16 AM..
That's right elixir_sinari.
Please forgive my mistake and considere the following code :
Code:
root:~# cat /usr/local/bin/dummy.sh
#!/bin/sh -e
for arg in $@; do # disable globbing
for file in /var/lib/$arg.dat; do # enable globbing
date >> $file
done
done
Sorry Skrynesaver and ahamed101. Escaping the wildcard doesn't change anything.
Last edited by chebarbudo; 10-01-2012 at 10:27 AM..
Hi ,
I'm facing a different behaviour with one of my shell script for last few days. It was working good before that.
here is my code for the script FileRemove.sh
#get the file name#
file1=$1
file2=$2
rm $file1 # delete the old file
mv $file2 <target path> #move the new file to the target... (5 Replies)
hi guys,
jus some file globbing questions
sed "s/^.*on//"
what does the full stop and asterisk means?
i onli know that ^ means inverse or not (1 Reply)
How can I pass in an argument such as "*.k" to a bash script
without having to double-quote *.k and not having *.k
`glob` to match all files in the pattern?
I tried using noglob in my script but this didn't work the way I thought
it would.. expansion is still occuring, $# is higher than I... (3 Replies)
I am on HP-UX and I am trying to come up with a method to call in a list of files named like so.
filename020107.dat filename020207.dat filename020307.dat
Obviously I can list them ls them like so, ls filename*.dat. In case you did not notice the number is a date and I was hoping to match... (4 Replies)
I would like to process a list of files matching: GPS*\.xyz with an awk script. I would then like to output the files to GPS*\.xyz.out (e.g. the same file name appended with .out). Something like:
awk '{if(NR==1) {offset=-$1}; $1=$1+offset; print }' GPS*.xyz
this does exactly what I want EXCEPT... (3 Replies)