web-dev-qa-db-fra.com

Comment attribuer un chemin de fichier / dossier à une variable dans Terminal

Dis que j'ai le chemin suivant:

/home/$USER/Downloads/My Folder

J'ai essayé d'assigner le chemin de fichier donné ci-dessus à une variable FILE_NAME comme suit,

FILE_NAME=/home/$USER/Downloads/My Folder
$FILE_NAME

La sortie était:

bash: /home/$USER/Downloads/My :No such file or directory

Comment résoudre ce problème?

4
logamadi

Vous devez utiliser des guillemets si le chemin contient des espaces:

FILE_NAME="/home/$USER/Downloads/My Folder"
4
Florian Diesch

Le problème est le blanc incorporé dans le nom. Le moyen le plus simple de résoudre ce problème consiste à inclure la chaîne de chemin d'accès complet entre guillemets (c.-à-d. FILE_NAME="/home/${USER}/Downloads/My Folder"
La raison d'utiliser " dans votre cas est due à votre utilisation de $ USER qui nécessite une substitution, avec ' ceci ne se produirait pas.

Une question secondaire est de savoir comment allez-vous utiliser la variable. Dans votre exemple ... je suppose que vous avez supprimé le cd de la commande cependant ... pour utiliser la variable ... vous devriez probablement aussi utiliser "autour de son utilisation

alors ... je suppose que vous utilisez ... cd "$ FILE_NAME"

2
george Barbaz