158 votes

Comment utiliser une variable d'environnement à l'intérieur d'une chaîne de guillemets dans Bash

J'ai essayé différentes formes de ce qui suit dans un script bash :

#!/bin/bash
svn diff $@ --diff-cmd /usr/bin/diff -x "-y -w -p -W $COLUMNS"

Mais je ne peux pas obtenir la syntaxe pour développer correctement la variable d'environnement COLUMNS.

J'ai essayé différentes formes de ce qui suit :

svn diff $@ --diff-cmd /usr/bin/diff -x '-y -w -p -W $COLUMNS'

et

svn diff $@ --diff-cmd /usr/bin/diff -x '-y -w -p -W ${COLUMNS}'

et

eval svn diff $@ --diff-cmd /usr/bin/diff -x "-y -w -p -W $COLUMNS"

Des suggestions ?

23voto

TheBonsai Points 3112

En cas de doute, vous pouvez utiliser la requête 'cols' sur le terminal, et oublier LES COLONNES :

COLS=$(tput cols)

2voto

Alex B Points 12826

Le script suivant fonctionne pour moi pour plusieurs valeurs de $COLUMNS. Je me demande si vous ne configurez pas COLUMNS avant cet appel ?

#!/bin/bash
COLUMNS=30
svn diff $@ --diff-cmd /usr/bin/diff -x "-y -w -p -W $COLUMNS"

Pouvez-vous faire écho $COLUMNS l'intérieur de votre script pour voir s'il est correctement configuré ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X