Shellcheck (bash) Exclure un test?

Bonjour,
shellcheck renvoie toujours une erreur SC2086 lorsqu’il trouve une variable au sein d’une chaine plus longue entre double quote:

echo "SYNTAXE: $(basename $0) gros_fichier.pdf [pdf_reduit]"
                                  ^-- SC2086: Double quote to prevent globbing and word splitting.

shellcheck dispose d’une option -e CODE1[,CODE2…] pour exclure des codes spécifiés du rapport (Explicitly exclude the specified codes from the report).

Vous semble-t’il possible de supprimer cette sortie SC2086 uniquement dans une commande echo (ou autre chaine équivalente)?

Salut, @josephtux

Si mes souvenirs sont bons, il me semble qu’il suffit de mettre un commentaire spécifique précédent ton écriture, de type :

# shellcheck disable=SCxxx

cf : https://github.com/koalaman/shellcheck/wiki/Ignore

Exact, ici ça signifie qu’il faut ajouter un commentaire au-dessus de la ligne concernée :

# shellcheck disable=SC2086
echo "SYNTAXE: $(basename $0) gros_fichier.pdf [pdf_reduit]"

Après pour cet exemple précis, il me semble que ShellCheck relève un vrai problème, la ligne corrigée serait :

echo "SYNTAXE: $(basename "$0") gros_fichier.pdf [pdf_reduit]"
1 J'aime

Merci pour la correction|précision. Même si la lecture du lien « Ignore » aurait permis de comprendre exactement ce qu’il en est :wink:

merci PengouinPdt,

mais je ne comprend pas.

Mon désir perfectionniste est que vim (dont le greffon syntastic utilise shellcheck) puisse afficher le code sans aucune marge signalant une remarque, me permettant de savoir que toutes ces remarques ont bien été prises en compte.
Mon exemple avec echo me semble être la seule remarque inappropriée de shellcheck, mais mon expérience en bash est sommaire.

EDIT
vv222 répond à cette remarque; merci aussi à vous.

Est-ce que cette ligne n’agit que sur la ligne suivante, ou pour tout ce qui suit? (ou pour toutes les lignes qui commencent par «echo»?)
EDIT
Seule la ligne suivante est affectée.

Là, je ne vais pas pouvoir t’aider.

Néanmoins la correction proposée par @anon96191775 dans ton script shell devrait empêcher que shellcheck te remonte|relève l’erreur…

STP, lis la page « Ignore » que je t’ai fournie ; elle explique tout correctement :wink:

oui, encore merci
vous êtes si réactifs que j’ai l’impression que vous répondez avant que j’ai posé la question!

1 J'aime