Je suis en train d'écrire un extrêmement simple script dans Ubuntu qui me permettrait de passer un nom de fichier ou un répertoire, et être en mesure de faire quelque chose de spécifique quand c'est un fichier, et quelque chose d'autre quand c'est un répertoire. Le problème que je vais avoir, c'est quand le nom du répertoire, ou probablement aussi des fichiers, des espaces ou d'autres escapable de caractères dans le nom.
Voici mon code de base vers le bas ci-dessous, et un couple de tests.
#!/bin/bash
PASSED=$1
if [ -d "${PASSED}" ] ; then
echo "$PASSED is a directory";
else
if [ -f "${PASSED}" ]; then
echo "${PASSED} is a file";
else
echo "${PASSED} is not valid";
exit 1
fi
fi
Et voici le résultat:
andy@server~ $ ./scripts/testmove.sh /home/andy/
/home/andy/ is a directory
andy@server~ $ ./scripts/testmove.sh /home/andy/blah.txt
/home/andy/blah.txt is a file
andy@server~ $ ./scripts/testmove.sh /home/andy/blah\ with\ a\ space.txt
/home/andy/blah with a space.txt is not valid
andy@server~ $ ./scripts/testmove.sh /home/andy\ with\ a\ space/
/home/andy with a space/ is not valid
Tous ces chemins sont valides, et exister.