GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zeichenbeschränkung für die Linux-Befehlszeile

Lösung 1:

Das von Shell/OS auferlegte Limit beträgt normalerweise ein- oder zweihunderttausend Zeichen.

getconf ARG_MAX gibt Ihnen die maximale Eingabegrenze für einen Befehl. Auf dem Debian-System habe ich derzeit ein Terminal geöffnet, auf dem 131072 zurückgegeben wird das ist 128*1024 . Das Limit wird durch Ihre Umgebungsvariablen reduziert und wenn ich mich richtig erinnere, werden diese in der gleichen Struktur von der Shell übergeben, obwohl das in den meisten Fällen nur ein paar hundert Zeichen entfernt. Um eine Annäherung an diesen Wert zu finden, führen Sie env | wc -c aus - Dies schlägt zum aktuellen Zeitpunkt 325 Zeichen bei dieser Anmeldung auf diesem Computer vor.

Skripte werden wahrscheinlich diese volle Länge zulassen, aber es ist nicht unwahrscheinlich, dass andere Dienstprogramme entweder absichtlich oder aufgrund von Designproblemen ihre eigenen Grenzen auferlegen. Es kann auch künstliche Grenzen geben, wie lang ein einzelnes Argument in einer langen Befehlszeile sein kann und/oder wie lang ein Pfad zu einer Datei sein kann.

Lösung 2:

ARG_MAX begrenzt tatsächlich die Gesamtgröße der Befehlszeile und der Umgebung, aber Sie sehen sich einer zusätzlichen Einschränkung gegenüber:Ein Argument darf nicht länger als MAX_ARG_STRLEN sein (was leider fest auf 131072 codiert ist).

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

Lösung 3:

Meinst du, was ist die längste variable Länge? Um das herauszufinden, können Sie das "x" von Perl verwenden, um einen sehr langen Variablennamen zu erstellen:

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

Auf meinem System funktioniert 131071:

und die Variable wird bei 131072 ausgegeben, sie ist zu groß:

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

Linux
  1. Haben Sie eine Kuh an der Linux-Befehlszeile

  2. Boxen Sie sich auf der Linux-Befehlszeile ein

  3. Linux-IP-Befehl

  4. So beschränken Sie Benutzerbefehle in Linux

  5. Linux:Datum über die Befehlszeile festlegen

Wie verwende ich Proxy in der Linux-Befehlszeile?

So booten Sie in die Linux-Befehlszeile

Meistern Sie die Linux-Befehlszeile

Grundlagen der Linux-Befehlszeile:sudo

So finden Sie die IP-Adresse in der Linux-Befehlszeile

Rechtschreibprüfung in der Linux-Befehlszeile