GNU/Linux >> Tutoriels Linux >  >> Linux

Limite de caractères de la ligne de commande Linux

Solution 1 :

La limite imposée par le shell/le système d'exploitation est généralement de un ou deux cent mille caractères.

getconf ARG_MAX vous donnera la limite d'entrée maximale pour une commande. Sur le système Debian, j'ai actuellement un terminal ouvert sur cela renvoie 131072 qui est 128*1024 . La limite est réduite par vos variables d'environnement et si ma mémoire est bonne, elles sont transmises dans la même structure par le shell, bien que cela ne supprime que quelques centaines de caractères dans la plupart des cas. Pour trouver une approximation de cette valeur, exécutez env | wc -c - cela suggère 325 caractères à l'heure actuelle sur ce login sur cette machine.

Les scripts autoriseront probablement cette longueur complète, mais il n'est pas improbable que d'autres utilitaires imposent leurs propres limites, soit intentionnellement, soit par des problèmes de conception. Il peut également y avoir des limites artificielles à la longueur d'un argument individuel sur une longue ligne de commande et/ou à la longueur d'un chemin d'accès à un fichier.

Solution 2 :

ARG_MAX limite en effet la taille totale de la ligne de commande et de l'environnement, mais vous êtes confronté à une limitation supplémentaire :un argument ne doit pas être plus long que MAX_ARG_STRLEN (qui est malheureusement codé en dur pour être 131072).

Voir https://unix.stackexchange.com/questions/120642/what-defines-the-maximum-size-for-a-command-single-argument

Solution 3 :

Voulez-vous dire quelle est la longueur variable la plus longue ? Pour comprendre cela, vous pouvez utiliser le "x" de perl pour créer un nom de variable très long :

 VAR=`perl -e 'print "a"x131071'` ; bash a.sh $VAR

Sur Mon système 131071 fonctionne :

et la variable est imprimée à 131072 c'est trop gros :

VAR=`perl -e 'print "a"x131072'` ; bash a.sh $VAR
bash: /bin/bash: Argument list too long

Linux
  1. Avoir une vache à la ligne de commande Linux

  2. Comment redémarrer Linux en utilisant la ligne de commande

  3. 15 exemples pour maîtriser l'historique de la ligne de commande Linux

  4. Comment limiter les commandes utilisateur sous Linux

  5. Linux :définir la date via la ligne de commande

Comment utiliser le proxy sur la ligne de commande Linux ?

Comment démarrer en ligne de commande Linux

Maîtrisez la ligne de commande Linux

Principes de base de la ligne de commande Linux :sudo

Comment trouver une adresse IP dans la ligne de commande Linux

Vérification de l'orthographe dans la ligne de commande Linux