I have a shell script that unzips a bunch of files, then processes the files and then zips them back up again. I want to wait with the processing until all the files are done unzipping.
I know how to do it for one file:
while [ -s /homes/ndeklein/mzml/JG-C2-1.mzML.gz ]
do
echo "test"
sleep 10
done
However, when I do
while [ -s /homes/ndeklein/mzml/*.gz ]
I get the following error:
./test.sh: line 2: [: too many arguments
I assume because there are more than 1 results. So how can I do this for multiple files?
You can execute a subcommand in the shell and check that there is output:
If the directory could potentially have thousands of files, you may want to consider using
findinstead oflswith the wildcard, ie;find -maxdepth 1 -name "*\.gz"