12
votes

Comment trouver le dernier paramètre de positionnement sous Linux

Je cherche à trouver le dernier paramètre de positionnement. Je sais que le nombre de paramètres est $ # qui est logiquement le dernier, mais j'ai besoin de trouver et d'utiliser ce qui se trouve dans le dernier paramètre de positionnement.

Ce serait comme si $ # = 5, je veux faire 5 $.

J'ai essayé de faire quelque chose comme $$ # ou $ {$ #} comme suppose mais je ne peux pas l'obtenir.

Les cas où j'aurais besoin d'utiliser, c'est dans une instruction IF ou la déclarant à une autre variable ou avec ECHO.

J'espère que c'est clair. Merci d'avance.


1 commentaires

Est-ce pour une fonction shell ou essayez-vous d'obtenir le dernier argument de la ligne de commande précédente?


3 Réponses :


18
votes

vous voulez $ {! #} , qui combine le nombre d'arguments avec indirection.


3 commentaires

et eval last = \ $$ # pour les obus qui manquent d'indirection via ! .


Cela semble être ce que je cherche. Merci.


Et je suppose que vous ne pouvez pas attribuer à $ {! #} Comme une variable si c'est ce que vous vouliez dire. Mais eval Last = \ $$ # a travaillé pour moi. Je pense que c'est ce que vous vouliez dire par manque d'indirection



5
votes

Voici un autre moyen:

$ ./test.sh 1 2 3 4 5
5


1 commentaires

Il est très important de noter que cette méthode élimine tous les paramètres de position et fait tout sauf la dernière inaccessible. Dans le contexte limité de la question, il s'agit d'une réponse correcte, dans la pratique, il aura des effets secondaires indésirables pour de nombreux scénarios réalistes. Cette approche n'est acceptable que si vous ne vous souciez vraiment de rien que le dernier paramètre.



5
votes

Cela semble être une approche plus directe: xxx

quelques informations supplémentaires Ici . Je ne suis pas sûr de la portabilité en dehors de Bash.


0 commentaires