GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je obtenir le nom d'utilisateur dans un Makefile ?

Eh bien, si vous voulez ce fichier pendant l'exécution, je vous recommande de le créer pendant l'exécution. Le Makefile n'est pris en compte qu'au moment de la compilation. C'est évidemment un problème si le programme est compilé puis exécuté par différents utilisateurs, dont certains peuvent même ne pas exister au moment de la compilation.

Pendant l'exécution, vous pouvez obtenir le répertoire personnel comme indiqué ici (si vous utilisez C/C++). Ensuite, vous pouvez vérifier l'existence du dossier/fichier des meilleurs scores et le créer si vous en avez besoin. Si vous voulez un fichier de meilleurs scores pour tous les utilisateurs, vous devez le placer dans le répertoire personnel d'un utilisateur spécial, mais plutôt ailleurs dans le système de fichiers. C'est par exemple le cas du jeu xjump.

Et à propos de votre Makefile, la variable $USER est traduite en root à cause du sudo commande sur

sudo make install

L'utilisateur qui exécute réellement make est le superutilisateur :root.


Vous souhaitez installer votre programme pour tous les utilisateurs ? Il est donc préférable de créer le /home/user/.game_name répertoire lorsque l'utilisateur lance le jeu, pas lorsque root l'installe. Sinon, seul l'utilisateur qui appelle sudo make install aura sa liste des meilleurs scores. Si vous n'avez qu'un seul utilisateur, ne l'installez pas à l'échelle du système, mais dans le répertoire des utilisateurs.

Je suggère d'initialiser les fichiers utilisateurs à la première manche du jeu. Ainsi, tous les utilisateurs, même les utilisateurs qui n'existaient pas lorsque le jeu a été installé, peuvent avoir leur liste des meilleurs scores. Vous pouvez ajouter le code d'initialisation dans votre jeu (c++, java ou autre) ou simplement appeler un script externe qui le fait (pas si élégant). Évitez de créer des fichiers liés à l'utilisateur au moment de l'installation.


Linux
  1. Comment répertorier les utilisateurs dans CentOS 7

  2. Linux - Comment obtenir de manière fiable le nom du système d'exploitation ?

  3. Comment obtenir en toute sécurité la version de Ksh ?

  4. Comment :Administration des utilisateurs de FreeBSD

  5. Comment obtenir la résolution actuelle du moniteur ou le nom du moniteur (LVDS, VGA1, etc.)

Comment répertorier les utilisateurs sous Linux

Comment obtenir la taille d'un répertoire sous Linux

Comment tirer le meilleur parti de Qmmp 1.0

Comment lister tous les utilisateurs sous Linux

Comment connaître les groupes d'un utilisateur Linux

Comment obtenir un nom de domaine sous Windows à l'aide de la commande ?