web-dev-qa-db-fra.com

Exécuter plusieurs lignes en une seule ligne de commande bash

Existe-t-il un moyen d'exécuter plusieurs lignes en une seule ligne dans le script bash?.

Ceci est mon script bash à plusieurs lignes

id=15;
if [ $id -ge 30 ]
then
echo Successful
echo $id
else
echo fail
echo $id
fi

Je veux exécuter cette ligne multiple comme une seule ligne jusqu'à présent, j'ai essayé de cette façon

id=15;if [ $id -ge 30 ]&&then&&echo Successful&&echo $id&&else&&echo fail&&echo $id&&fi

mais quand j'ai exécuté cette commande dans le terminal, j'ai eu cette erreur

bash: erreur de syntaxe près du jeton inattendu `then '

Toute idée sur la façon de changer le script à plusieurs lignes en une commande à une seule ligne

2
Eka

Tout d'abord, vous pouvez remplacer le && par le ;, ce qui équivaut aux sauts de ligne de votre code à plusieurs lignes. Deuxièmement, je ne pense pas que vous ayez besoin du && (ou ;) après l'instruction then.

La différence entre les sauts de ligne && et ; est que && exécute le bloc de code suivant si et seulement si le bloc précédent a été exécuté correctement.

4
Dai