8
votes

Comment puis-je remplacer «Bash: Commande $: Commande non trouvée» Message?

Toute aide serait appréciée.

Fondamentalement, je veux remplacer: xxx

avec: xxx

merci.


2 commentaires

Pourquoi demandez-vous? Pourquoi est-ce que tu t'en préoccupes?


GNU Bash est Logiciel libre . Vous avez la liberté de l'améliorer. Alors obtenez son code source, étudiez-le, améliorez-le ... mais êtes-vous sûr que cela vaut votre temps?


4 Réponses :


3
votes

Vous pouvez écrire ceci à votre .bstrucc : xxx

Ceci affichera toujours le Bash: EvalfAKE: commande non trouvée . Vous pouvez supprimer cela en faisant: xxx


2 commentaires

Je ne sais pas où je manque ou si le résultat souhaité n'est pas ce que j'attends, mais j'ai essayé cela. Il imprime simplement les deux. > Evalfake> Bash: Evalfake: Commande non trouvée> [*] Commande non trouvée


@Carlossanchez, a ajouté une explication de ce comportement.



0
votes

Je voudrais simplement rediriger les erreurs sur / dev / null code>. Si Evalfake code> renvoie un code de sortie supérieur à 0, cela écho à votre message d'erreur personnalisé.

obvfake 2>/dev/null || {
    if (( $? == 127 )); then
        echo "[*] command not found"
    fi
}


0 commentaires

9
votes

bash version 4 introduit un crochet pour la manipulation des commandes manquantes; Ajoutez les éléments suivants à votre fichier .bstrucc . xxx


2 commentaires

Je me demande est une façon de gérer cette erreur, imprimez notre message personnalisé, puis laissez le système imprimer le message par défaut après?


obtenu un: command_not_found_handle () {insultes de la fortune; Retour 127} Si, bien sûr, vous avez le fichier FORTUNES correspondant (à partir de perl_fortune ). Un peu comme sudo vous insultant sur un mauvais mot de passe



-1
votes

Comme suggéré par Cheppner ... Vous pouvez personnaliser le message par défaut en remplaçant la fonction Bash (fonctionnalité de signal 127 ou de commande) avec celui conçu par vous et incluez cette fonction dans le script.

# function that handles command-not-found message.
command_not_found_handle() {

 echo -e "My Friend, '$1' is a typo. Please correct it and re-enter the command."  
  return 127

}


4 commentaires

Mais votre exemple ne produit pas la sortie que l'OP demande. Et si c'était le cas, ce serait une copie / pâte de la réponse postée par @cheppner


@Peter Eh bien, je veux ajouter mon commentaire sur le post de Cheppner .. mais je n'ai pas pu faire de commentaire en raison de certaines restrictions, ce qui a fait un nouveau poste. J'ai essayé qu'il travaillait et publiéait la même chose que l'article sur mon site Web. Est-ce faux?


"Est-ce faux?" - À mon avis, oui. Le débordement de la pile n'est pas le bon endroit pour annoncer votre site Web, et jusqu'à ce que je puisse voir la cotisation seulement Valeur ajoutée Votre réponse ajoute est la publicité de votre site Web. Complètement hors sujet et non utile ici. (Ceci est indépendamment de la question de savoir si vous pouvez poster des commentaires ou non, mais sur cette question, juste parce que cela ne vous permet pas de poster des commentaires, ce n'est pas une raison pour poster votre commentaire comme s'il s'agissait d'une réponse).


Merci de me l'avoir dit. J'en prendrai soin.