GNU/Linux >> Linux Esercitazione >  >> Linux

Limite di caratteri della riga di comando di Linux

Soluzione 1:

Il limite imposto dalla shell/OS è di solito uno o duecentomila caratteri.

getconf ARG_MAX ti darà il limite massimo di input per un comando. Sul sistema Debian attualmente ho un terminale aperto su questo restituisce 131072 che è 128*1024 . Il limite è ridotto dalle tue variabili di ambiente e se la mia memoria mi serve correttamente queste vengono passate nella stessa struttura dalla shell, anche se nella maggior parte dei casi ciò toglierà solo poche centinaia di caratteri. Per trovare un'approssimazione di questo valore eseguire env | wc -c - questo suggerisce 325 caratteri all'ora corrente su questo login su questa macchina.

È probabile che gli script consentano questa lunghezza completa, ma non è improbabile che altre utilità impongano i propri limiti intenzionalmente o per problemi di progettazione. Potrebbero esserci anche limiti artificiali alla lunghezza di un singolo argomento su una lunga riga di comando e/o alla lunghezza del percorso di un file.

Soluzione 2:

ARG_MAX in effetti limita la dimensione totale della riga di comando e dell'ambiente, ma devi affrontare un'ulteriore limitazione:un argomento non deve essere più lungo di MAX_ARG_STRLEN (che purtroppo è hardcoded per essere 131072).

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

Soluzione 3:

Intendi qual è la lunghezza variabile più lunga? Per capirlo puoi usare la "x" di perl per creare un nome di variabile molto lungo:

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

Sul mio sistema 131071 funziona:

e la variabile è stampata a 131072 è troppo grande:

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

Linux
  1. Avere una mucca sulla riga di comando di Linux

  2. Entra nella riga di comando di Linux

  3. comando IP Linux

  4. Come limitare i comandi utente in Linux

  5. Linux:imposta la data tramite la riga di comando

Come utilizzare il proxy sulla riga di comando di Linux?

Come avviare la riga di comando di Linux

Padroneggia la riga di comando di Linux

Nozioni di base sulla riga di comando di Linux:sudo

Come trovare l'indirizzo IP nella riga di comando di Linux

Controllo dell'ortografia nella riga di comando di Linux