Bonjours à tous, je me suis apercu que sur ma FC3 la commande ./repertoire/ou/le/fichier/est/place/fichier.sh ne marche pas ... alors qu'un sh fonctionne correctement . Hors j'ai besoin de ./ pour l'integrer dans un petit script bash , car bash ne reconnait pas la commande sh ! Savez vous si j'ai pu oublié d'installer un paquet ? ou bien si il y à autre chose a faire pour rétablir cette fonction?

merci!
Pourquoi ./repertoire... ?

Peux-tu préciser le chemin exacte de ton script (depuis /), ta position (pwd) au moment de l'appel et les droits sur ton script.
En gros je veut lancer un programme en fond de tache via la commande screen, le repertoire d'installation de ce programme est de plus accessible par mes utilisateurs via un compte pureFTP, et mon programme sera lancer puis arreter via une interface web ... du coup je ne veut pas que les utilisateurs puissent changer mon startprogramme.sh et y inclure des lignes de codes qui permetraient de penetrer ou de faire planter mon systeme ...

j'ai donc créer un repertoire /data/programme dispo n ftp et un repertoire /data/boot uniquement accessible par mon serveur web ... maintennat je veut faire un startprogramme.sh mis dabs le dossier boot et qui fera démarrer mes programmes qui sont dans /data/programme !

et la quand je fait un screen 001 etc .. ./data/programme/executable + options alors j'ai ce message:

"aucun fichier ou repertoire de ce type"

Alors qu'avec un sh tout marche bien ... j'ai bien tester mon bleme vient de ./ Voila voila ... 🙂 Merci de ton interet 😉
Salut !
Le "." représente le répertoire où tu es (on en apprend des choses sur les forums fedora-fr :-D), il faut donc que tu fasses ta commande en deux fois :
cd /chemin/vers/ton/programme/
screen ./programme --options
note : je ne suis d'ailleurs pas sur que le "." te serve à quelque chose ici...

Voilà, je pense que c'est ça mais je ne connais pas screen...
a+ 🙂
Pourquoi ne pas lancer directement
/data/programe/xxx
ou
../programme/xxx
Je ne vois pas à quoi sert ton point en début.

A+
L'adressage absolu -réponse de Remi- est impératif ...

L'utilisateur qui lance le script (serveur Web) dispose de variables d'environnement qui lui sont spécifiques dont HOME, PWD.

Ces variables déterminent le point de référence que le shell traduit de "." : le répertoire courant est ainsi issu de PWD et au lancement, la valeur de PWD est celle de HOME.

Il paraît donc possible que le lancement du script n'aboutisse pas puisque le chemin traduit n'existe pas!
  • [supprimé]

Pourquoi ne pas lancer directement
/data/programe/xxx
Car le shell me dit alors bad interpreter, dansun bash c'est pareil. E tout cas chez moi 😉
Le "." représente le répertoire où tu es (on en apprend des choses sur les forums fedora-fr )
Ha bah oué! Merci 😉 C'est le truc bien sous linux on en finit jamais et on commence pas toujours par le bon coté ^^ ...
Il paraît donc possible que le lancement du script n'aboutisse pas puisque le chemin traduit n'existe pas!
Ca doit être ca oui ...

J'ai mon script sh qui marche quand il est dans le repertoire meme du programme, mais qui ne marche pas quand il est situé dans un autre repeertoire.

Par exemple dans mon script je dis:
#!/bin/bash
cd /data/programme/
mkdir testpourvoiroujesuis
screen 001 programme  ....
Quand je l'execute, le screen ne se lance pas et le repertoire testpourvoiroujesuis s'est créer dans le repertoire /data/boot expliquant ainsi le fait que le screen ne ce soit pas lancé puiskil n'a pas trouvé l'executable de mon programme

Y a il un moyen d'indiquer au shell ou se placer dans mon systeme de fichier ou peut on lancer le screen de cette facon:

screen -dms 001 /data/programme/executable

Mais chez moi ca ne marche pas ...

Merci pour vos réactions!
  • [supprimé]

En fait j'ai fait fausse route ... mon véritable probleme est bel et bien de savoir comment lancer un .sh via apache et php ... Mais ce n'est peut etre plus le bon forum ...

Juste pour l'info je suis censé utilisé la fonction exec ()

Voila voila ... 8-)