1 votes

Cacher un appel de chemin de fichier à l'exécutable dans .bash script ?

Je veux écrire un bash script qui appelle un exécutable compilé (je suis un étudiant débutant en informatique). Cependant, je veux cacher le chemin de fichier réel de l'appel. Voici la fonction que j'ai jusqu'à présent :

function comprun() 
{
   local source_file=$1
   local args=$2
   g++ -Wall -Wextra -Wconversion "$source_File" -o "$source_file.x";
   if [ $? -eq 0 ]; then
      echo -e "Running $source_file.x PARAM: $args\n==============\n";
      if [ -z "$args" ]; then
           ./$source_file.x;
      else
           ./$source_file.x $args;
      fi
   fi
}

Cela semble fonctionner pour ce que je veux, sauf un problème : après l'en-tête, on peut voir "Running...=====", cela imprime l'appel de l'exécutable. Je ne suis pas sûr que ce soit la faute de la façon dont je l'ai fait, ou si BASH ne cache pas les appels de fichiers, mais si c'est le cas, y a-t-il un moyen de le cacher pour qu'il n'apparaisse pas comme (disons que le fichier est x.c avec les args 1 2) :

Running x.c.x PARAM: 1 2
==========================
./x.c.x 1 2    

Toute aide est appréciée, merci. Je comprends que mes autres méthodes peuvent être stupides ou ne pas fonctionner, mais je préfère les résoudre moi-même si possible. Pour l'instant, c'est ce qui me préoccupe. Merci pour toute aide.

NOTE : CE N'EST PAS UN DEVOIR. Je m'amuse avec ça, c'est tout.

0voto

idit kats Points 11

Désolé. Je n'ai pas bien lu mes notes et c'est écrit juste là : argv[0] == chaîne de caractères du nom du programme. Donc, printf("%s %s %s \n ", argv[0], argv[1], argv[2]) ;

faisait techniquement exactement ce que je voulais qu'il fasse. Merci de proposer ce forum pour les questions, même aussi stupides que les miennes :P

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X