Issue at hand
I am trying to write a bash script to quickly create a directory structure. This is an attempt to learn more about manipulating arrays, variables, and using loops. My script works to check for the existence of a directory then create folders. The issue I am having is creating a third level of directories within the first two layers.
Goals
I want to be able to write a bash script that will create a directory structure of ~/a/a/a, ~/a/a/b, ~/a/a/c,...,~/a/z/z
for example. This should be flexible to so I could use any kind of array or variable that would be suitable.
Here is what I have worked out so far:
#!/bin/bash
array_0=(one two three four five)
array_1=(x y z)
if [ ! -d "directory" ]; then
mkdir directory
fi
for array_0 in "${array_0[@]}"
do
mkdir ~/directory/$array_0/
done
if [ -d "~/directory/$array_0/" ]; then
for array_1 in "${array_0[@]}"
do
mkdir ~/directory/$array_0/$array_1
done
fi
exit 0
Problem
The error I get is mkdir: cannot create directory '/home/user/directory/one/x' : No such file or directory
Other attempts at this script allow me to create ~/directory
and ~/directory/one, ~/directory/two,..., ~/directory/five
without fail but not the next level i.e /directory/one/x
and etc.
How can I script the creation of this directory structure? Is this possible using arrays or is there another method?
For reference I tried to implement this post and elements from this post but I have not had any luck creating the directory structure that I want.