Você precisa separar $ BASE dos números (1..5), caso contrário, sh interpretará o que você deseja como uma variável chamada, por exemplo, $BASE1
em vez de fornecer o valor de $BASE
com 1
anexado.
Aqui está uma versão corrigida e melhorada do seu script.
echo -n "Please enter your base directory name: "
read BASE
mkdir -p "$BASE" "$BASE/$BASE"{1..5}
ls -1d $BASE $BASE/*
Se você não estiver usando bash ou zsh ou ksh ou qualquer outro shell que suporte {1..5}
, poderá fazer isso:
echo -n "Please enter your base directory name: "
read BASE
mkdir -p "$BASE"
for i in 1 2 3 4 5 ; do mkdir -p "$BASE/$BASE$i" ; done
ls -1d $BASE $BASE/*