Script BASH

Bonsoir a tous les briscards du monde Linux

Le pauvre debutant que je suis a du mal a comprendre pourquoi

#! /bin/bash

str1='ls -a'

echo $str1

affiche : " ls -a "
en lieu et place du resultat de la commande « ls -a »

Merci

La bonne syntaxe est

#!/bin/bash
str1=$(ls -a)
echo $str1

++

Bonsoir et merci

de prendre la peine de me repondre
sur mon post ce sont des guillemets qui s affichent
mais en fait j ai mis ’ ’
str1=$(ls -a) ne resout pas le probleme.

Je me suis permis un peu de mise en forme de ton message initial pour rendre le script plus lisible. Sinon le moteur de forum a tendance à transformer certains caractères.

1 J'aime

dans ton message c est bien des parentheses que tu as mis ?

$ cat test.sh 
#!/bin/bash

str1=$(ls -a)

echo $str1



$ bash test.sh 
. .. abuledu-suites-9.5.tar.gz anniv.sh aptates Arduino

Donc ça liste bien le répertoire courant

Quelle est l’erreur retournée ?

Non, des « backticks », ça ressemble à ça :

`​``bash
#! /bin/bash

str1='ls -a'

echo $str1
`​``

Oups, je réalise que tu répondais à crustyourmind.

Bonsoir j ai du mal a comprendre ton message

str1='ls  -a'

echo $str1

j obtiens

$  "ls  -a"

Je n’ai jamais dit de taper ça mais

VAR=$(ls -a)
echo $VAR

Cette à dire le nom de la variable, le égal , un dollar et la commande à passer entre parenthèses

Bonjour vv222

dans mon message initial c est ce que je mets j ignore pourquoi il ne s affichent pas neanmoins toutes les solutions proposees ne resolvent rien

Tu peux éditer tes messages afin de comprendre comment fonctionne la mise en page.

Pour ce qui est du bash il faut déclarer une variable :wink: observe bien ce que mes prédécesseurs ont posté et compare strictement avec ce que tu tape …

il te manque un dollar pour spécifier ta commande à l’intérieur de la variable sinon la seule valeur que prendra ta variable est le texte (non interprété par le shell) ls -a.

Bonjour Clochette

Avec le dollar
Image 1
reslutat

Image 2

Peux-tu nous montrer le retour d’un ls -a à l’endroit ou tu as entreposé ton script …

de ce que l’on vois sur ton bureau tu as un script main.sh et age.sh donc à priori ça marche non ?

zuuttttt

je viens de realiser

merci

Faire attention aussi à la différence
entre
echo "$str1"
et
echo $str1