Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/12/2018, à 09:19

irek

Mon premier ficher .sh

Bonjour as tous  je viens à vous pour un petit coup de pouce
Je m'explique j'ai plusieurs commant a fait  dans differents dossiers différents

Donc je voulais fait un ficher m.sh

J'ai fait un tableau
1
2
3
4

Je voudrai savoir comment fait
Une commande
Quel est vôtre choix :
Si 1 cd /Home/pi/soft1/./test.sh
Si 2 cd/ Home/pi soft2/./test.sh
Merci

Hors ligne

#2 Le 06/12/2018, à 10:23

Sciensous

Re : Mon premier ficher .sh

1ère réponse de recherche avec Duck !


(L et)Ubuntu xenial 16.04.3 et Ubuntu bionic 18.04
  (4.4.0-1xx-generic)
( sous LXDE et gnome-shell )

Hors ligne

#3 Le 06/12/2018, à 10:41

kholo

Re : Mon premier ficher .sh

bonjour voilà qui saura t'amuser un peu :

#!/bin/bash
# ----------------------------------------------
nomlogiciel="$(basename "$0")"
# FONCTION=""
VERSION="alpha"
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------
echo "lancement $nomlogiciel..."

### jusqu' ici on ne fait pas grand chose !

une_fonction(){
    echo "je suis une fonction avec " $@
}

#### je vais mettre le texte à part pour plus de lisibilité de la fonction
texteMenu="du texte ici :
    0 ne fait rien
    1 pour faire ça
    2 pour faire autre chose
    3

    f pour lancer une fonction

    q pour quitter
faites un choix : "

### je crée une fonction que je vais pouvoir boucler en l'appelant elle même
main(){
echo "*****************************************"
    echo -n "$texteMenu"
    read -r -n 1 untruc ### -n 1 pour 1 lettre 
    echo
    case $untruc in
        0) ;; ### pas obligé de faire quelque chose
        1) echo "je fais ça";;
        2) echo "je fais autre chose";;
        # 3) ;;
        f) une_fonction "des arguments";;
        'q') exit 14;; ### le 14 est un code que tu choisis de 0 à 128
        *) echo "je ne comprend pas !!!";;
    esac
    main ### la fonction s'appelle
}
main

exit 0

Hors ligne

#4 Le 06/12/2018, à 13:12

Watael

Re : Mon premier ficher .sh

oula, gare à l'empilement de la fonction...

il existe une commande bash (au moins) pour exécuter un menu : select

$ help select
select: select NOM [in MOTS ... ;] do COMMANDES; done
    Sélectionne des mots d'une liste et exécute des commandes.
[...]

eval, c'est mal.

Hors ligne

#5 Le 06/12/2018, à 20:21

irek

Re : Mon premier ficher .sh

Merci mes dans notre programme il affiche
Du texte moi je veux démarrer un soft1 qui se trouve
je fais dans le terminal
Cd Home
Cd pi
Cd soft1
Donc je suis dans le répertoire Home/pi/soft1/
Et dans ce répertoire je démarre la commande ./ficher option
Je comprends pas comment intégrer sa dans votre code

EN gros je essayer de faire une commande différents a chaque nombre quand j'ai mon commentaire
1...
2...
3..
Pour démarrer les ligne de commande en trapant 1ou 2ou 3 je veux pas de boucle puisque s'est ma ligne de commande qui prend le relais

Dernière modification par irek (Le 06/12/2018, à 20:27)

Hors ligne

#6 Le 08/12/2018, à 10:04

Sciensous

Re : Mon premier ficher .sh

simplement en mettant la commande !!

Et dans ton cas, tu peux écrire directement:

$HOME/soft1/ficher option

$HOME est une variable système qui remplace /home/pi
(et non Home/pi cat les maj/minuscules ont leur importance)

attention  si tu travailles dans le dossier soft1 de vérifier d'utiliser des chemins absolus sinon tu travailleras à partir de l'endroit où le soft est lancé (/home/pi si rien n'est fait)

pour reprendre ton exemple et le détail de Waetel du lien que je t'ai mis (l'as-tu lu ?):

select $MOT in "soft1" "soft2"
do
case $REPLY in
 1) /home/pi/soft1/test.sh ;; 
 2) /home/pi/soft2/test.sh ;;
esac
done

les ;; ne sont pas une erreur mais la syntaxe de fin de "cas"

Dernière modification par Sciensous (Le 08/12/2018, à 10:14)


(L et)Ubuntu xenial 16.04.3 et Ubuntu bionic 18.04
  (4.4.0-1xx-generic)
( sous LXDE et gnome-shell )

Hors ligne