La siguiente secuencia de comandos catenates varios caminos (relativas/absolutas) (basePath) con una ruta relativa (SUBDIR):
shopt -s extglob
SUBDIR="subdir"
for BASEPATH in ''/base base/ base// /base /base/ /base//; do
echo "BASEPATH = \"$BASEPATH\" --> ${BASEPATH%%+(/)}${BASEPATH:+/}$SUBDIR"
done
La salida de los cuales es:
BASEPATH = "" --> subdir
BASEPATH = "/" --> /subdir
BASEPATH = "base" --> base/subdir
BASEPATH = "base/" --> base/subdir
BASEPATH = "base//" --> base/subdir
BASEPATH = "/base" --> /base/subdir
BASEPATH = "/base/" --> /base/subdir
BASEPATH = "/base//" --> /base/subdir
El shopt -s extglob
solo es necesario para permitir que BASEPATH termine en barras múltiples (lo cual probablemente sea una tontería). Sin extendida globing sólo puede utilizar:
echo ${BASEPATH%%/}${BASEPATH:+/}$SUBDIR
lo que resultaría en menos ordenada pero sigue trabajando:
BASEPATH = "" --> subdir
BASEPATH = "/" --> /subdir
BASEPATH = "base" --> base/subdir
BASEPATH = "base/" --> base/subdir
BASEPATH = "base//" --> base//subdir
BASEPATH = "/base" --> /base/subdir
BASEPATH = "/base/" --> /base/subdir
BASEPATH = "/base//" --> /base//subdir
¿Qué has intentado hasta ahora? Además, ¿es parte de su pregunta sobre cómo obtener información del usuario y la otra sobre cómo crearla? ¿O solo el camino? – Levon
Simplemente creando la ruta. – Hakim