3 votes

Langue C, pour vérifier si un argument est une commande intégrée au shell

Je suis en train d'essayer d'écrire un petit shell. Comment puis-je distinguer si un argument d'entrée est une commande interne (dans ce cas, je ferai un fork et l'exécuterai)?
PS. Je travaille sur Ubuntu 18.04 LTS.

3voto

visibleman Points 1718

Eh bien, si vous écrivez votre propre shell, alors techniquement, c'est à votre implémentation de décider ce qui est ou n'est pas une commande intégrée.

Pour les commandes intégrées

Dans bash, ksh, etc., vous pouvez utiliser compgen -b pour générer une liste des commandes intégrées dans le shell correspondant.

-A action

...

builtin

Noms des commandes intégrées au shell. Peut également être spécifié en tant que -b.

Pour les commandes non intégrées

Pour trouver les commandes non intégrées, recherchez dans le chemin d'accès, ou consultez le FHS et recherchez par exemple dans /bin /sbin /usr/bin /usr/sbin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X