Maison php教程 PHP开发 Solution au problème de trop d'arguments dans Linux bash

Solution au problème de trop d'arguments dans Linux bash

Jan 04, 2017 pm 05:23 PM

Pour déterminer si le contenu d'un fichier est vide, utilisez l'instruction :

if test -z `cat filename`

Lorsque le nom de fichier est vide ou ne contient qu'une seule ligne de chaîne sans espaces , tout est normal, sinon des erreurs du type : trop d'arguments, ou encore : opérateur binaire attendu seront signalées.

Analyse des causes :
Les espaces et les retours chariot dans le nom de fichier confondent bash.
Si la variable d'environnement n'est pas placée entre guillemets, alors bash pense qu'il y a trop de variables indépendantes dans la condition.

Vous pouvez éliminer ce problème en mettant l'argument de chaîne entre guillemets doubles.

Il semble que prendre l’habitude de mettre tous les arguments de chaîne entre guillemets doubles éliminera de nombreuses erreurs de programmation similaires.

Solution :

Ajoutez simplement des guillemets doubles à la partie exécution de la commande :

if test -z "`cat filename`"
Copier après la connexion

Solution 2 pour le trop grand nombre d'arguments du shell :

Aujourd'hui, je j'ai parfois rencontré un problème étrange pour résoudre un petit problème. "[ ]" et "[[ ]] " ont des effets différents. Le résumé est le suivant

Afficher le code : Si [ -z ` lsof -i : 22 ` ] //Cette façon d'écrire rapportera trop d'arguments, remplacez-la par [[ -z ` lsof -i:22 ` ]]
                                                                                                                                                                                                                                                          🎜> autre
                                                                                                                                                                                                                                                                          En termes simples, "[[ ]]" a meilleure polyvalence que "[ ]", donc afin d'éviter ce problème, remplacez simplement "[ ]" par "[[ ]]" . De plus, "[[ ]]" est plus tolérant aux pannes que "[ ]", c'est-à-dire que les erreurs qui peuvent être signalées dans "[ ]" peuvent ne pas être signalées dans les structures "[[ ]], telles que &&, || , etc. Ce type de jugement logique n'est pas l'objet de cet article, je vais donc le mentionner brièvement

Pour plus d'articles connexes sur la façon de résoudre le problème du trop grand nombre d'arguments dans Linux bash, veuillez faire attention. vers le site PHP chinois ! >

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)