1
I am trying to build a Shell Script that stores directories exists at the root of /Volumes and perform an iteration on these, ignoring only the directory: "Preboot" and "Macintosh H"
1
I am trying to build a Shell Script that stores directories exists at the root of /Volumes and perform an iteration on these, ignoring only the directory: "Preboot" and "Macintosh H"
0
for d in /Volumes/*; do
if [ "$d" != "/Volumes/Preboot" -a "$d" != "/Volumes/Macintosh H" ]; then
itera "$d";
fi;
done
for will iterate over a given set of words. In this case, we are passing /Volumes/*, which will be expanded glob and therefore the iteration argument of for will all content not hidden from /Volumes.
In condition, I am ensuring that the variable $d not even the briefcase Preboot inside /Volumes nor Macintosh H inside /Volumes also. I don’t recall any operation of relevance to test. Could have used case/esac also to ignore these options.
The test cmd1 -a cmd2, specifically -a, is the operation and of command test. Therefore, the example operation of the beginning of this paragraph will be true if cmd1 and cmd2 are true.
As I am without computer, I was left with doubt when the expansion glob generates options with spaces in the middle, but I believe that even if this generates a bug in the code it is almost trivial to fix it.
Thanks for the help, final result: #! /bin/bash for d in /Volumes/; do if [ "$d" != " /Volumes/Preboot" -a "$d" != " /Volumes/Macintosh HD" ]; then cd "$d" && find . -type f ( -iname "._" -o -name ". Ds_store" ) -exec rm "{}" ; echo "Removing files ". _*" and ". Ds_store" from: $d"; fi; done .
Browser other questions tagged bash
You are not signed in. Login or sign up in order to post.
"Interaction" or "iteration"? If "interaction" could explain what kind of "interaction" you want?
– Guilherme Nascimento
for d in /Volumes/*; do if [ "$d" != "/Volumes/Preboot" -a "$d" != "/Volumes/Macintosh H" ]; then itera "$d"; fi; done– Jefferson Quesado