Question sha-bang

Le
le pierre
Bonjour, pourquoi ce script se detruit lui meme ?



#!/bin/rm
# Script se supprimant lui-même.

# Rien de plus ne semble se produire lorsque vous lancez ceci si
on enlève
#+ le fait que le fichier disparait.

QUOIQUECESOIT=65

echo "Cette ligne ne s'affichera jamais."

exit $QUOIQUECESOIT # Importe peu. Le script ne se terminera pas ici.


merci
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
François Meyer
Le #16785791
le pierre
Bonjour, pourquoi ce script se detruit lui meme ?



C'est une question ou une devinette ?

#!/bin/rm
# Script se supprimant lui-même.

# Rien de plus ne semble se produire lorsque vous lancez ceci... si
on enlève
#+ le fait que le fichier disparait.

QUOIQUECESOITe

echo "Cette ligne ne s'affichera jamais."

exit $QUOIQUECESOIT # Importe peu. Le script ne se terminera pas ici.



Sisi :-) :

[ ~]$ sh script
Cette ligne ne s'affichera jamais.
[ ~]$ echo $?
65
[ ~]$ cat script
#!/bin/rm
# Script se supprimant lui-même.

# Rien de plus ne semble se produire lorsque vous lancez ceci... si on
# enlève
#+ le fait que le fichier disparait.

QUOIQUECESOITe

echo "Cette ligne ne s'affichera jamais."

exit $QUOIQUECESOIT # Importe peu. Le script ne se terminera pas ici.
[ ~]$

--
François Meyer
le pierre
Le #16785781
On 11 sep, 16:20, François Meyer
le pierre > Bonjour, pourquoi ce script se detruit lui meme ?

C'est une question ou une devinette ?

> #!/bin/rm
> # Script se supprimant lui-même.

> #  Rien de plus ne semble se produire lorsque vous lancez ceci... si
> on enlève
> #+ le fait que le fichier disparait.

> QUOIQUECESOITe

> echo "Cette ligne ne s'affichera jamais."

> exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas ici .

Sisi :-) :

[ ~]$ sh script
Cette ligne ne s'affichera jamais.
[ ~]$ echo $?
65
[ ~]$ cat script
#!/bin/rm
# Script se supprimant lui-même.

#  Rien de plus ne semble se produire lorsque vous lancez ceci... si on
#  enlève
#+ le fait que le fichier disparait.

QUOIQUECESOITe

echo "Cette ligne ne s'affichera jamais."

exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas ici.
[ ~]$

--
François Meyer



C'est une question, j'ai trouvé ca dans une doc , mais je ne comprends
pas pourquoi ?
le pierre
Le #16785771
On 11 sep, 16:26, le pierre
On 11 sep, 16:20, François Meyer


> le pierre > > Bonjour, pourquoi ce script se detruit lui meme ?

> C'est une question ou une devinette ?

> > #!/bin/rm
> > # Script se supprimant lui-même.

> > #  Rien de plus ne semble se produire lorsque vous lancez ceci... s i
> > on enlève
> > #+ le fait que le fichier disparait.

> > QUOIQUECESOITe

> > echo "Cette ligne ne s'affichera jamais."

> > exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas i ci.

> Sisi :-) :

> [ ~]$ sh script
> Cette ligne ne s'affichera jamais.
> [ ~]$ echo $?
> 65
> [ ~]$ cat script
> #!/bin/rm
> # Script se supprimant lui-même.

> #  Rien de plus ne semble se produire lorsque vous lancez ceci... si on
> #  enlève
> #+ le fait que le fichier disparait.

> QUOIQUECESOITe

> echo "Cette ligne ne s'affichera jamais."

> exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas ici .
> [ ~]$

> --
> François Meyer

C'est une question, j'ai trouvé ca dans une doc , mais je ne comprends
pas pourquoi ?



Voici le lien ou se trouve la doc :
http://pagesperso-orange.fr/gleu/absfr.tuxfamily.org/abs-1.7-fr/sha-bang.ht ml
François Meyer
Le #16785911
le pierre
On 11 sep, 16:20, François Meyer
le pierre > Bonjour, pourquoi ce script se detruit lui meme ?

C'est une question ou une devinette ?

> #!/bin/rm
> # Script se supprimant lui-même.

> #  Rien de plus ne semble se produire lorsque vous lancez ceci... si
> on enlève
> #+ le fait que le fichier disparait.

> QUOIQUECESOITe

> echo "Cette ligne ne s'affichera jamais."

> exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas ici.

Sisi :-) :

[ ~]$ sh script
Cette ligne ne s'affichera jamais.
[ ~]$ echo $?
65
[ ~]$ cat script
#!/bin/rm
# Script se supprimant lui-même.

#  Rien de plus ne semble se produire lorsque vous lancez ceci... si on
#  enlève
#+ le fait que le fichier disparait.

QUOIQUECESOITe

echo "Cette ligne ne s'affichera jamais."

exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas ici.
[ ~]$

--
François Meyer



C'est une question, j'ai trouvé ca dans une doc , mais je ne comprends
pas pourquoi ?



Bin la première ligne :

#!/bin/rm

Si tu rends le script executable et le lance directement,
ce qui s'execute c'est "/bin/rm script", et pas "sh script".
--
François Meyer
le pierre
Le #16786061
On 11 sep, 16:46, François Meyer
le pierre > On 11 sep, 16:20, François Meyer >> le pierre >> > Bonjour, pourquoi ce script se detruit lui meme ?

>> C'est une question ou une devinette ?

>> > #!/bin/rm
>> > # Script se supprimant lui-même.

>> > #  Rien de plus ne semble se produire lorsque vous lancez ceci... si
>> > on enlève
>> > #+ le fait que le fichier disparait.

>> > QUOIQUECESOITe

>> > echo "Cette ligne ne s'affichera jamais."

>> > exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas ici.

>> Sisi :-) :

>> [ ~]$ sh script
>> Cette ligne ne s'affichera jamais.
>> [ ~]$ echo $?
>> 65
>> [ ~]$ cat script
>> #!/bin/rm
>> # Script se supprimant lui-même.

>> #  Rien de plus ne semble se produire lorsque vous lancez ceci... si on
>> #  enlève
>> #+ le fait que le fichier disparait.

>> QUOIQUECESOITe

>> echo "Cette ligne ne s'affichera jamais."

>> exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas ic i.
>> [ ~]$

>> --
>> François Meyer

> C'est une question, j'ai trouvé ca dans une doc , mais je ne comprend s
> pas pourquoi ?

Bin la première ligne :

#!/bin/rm

Si tu rends le script executable et le lance directement,
ce qui s'execute c'est "/bin/rm script", et pas "sh script".
--
François Meyer



oui c'est bin/rm qui s'execute mais alors pourquoi efface t il le
script qui le lance ?
asl
Le #16787111
Le 11-09-2008, le pierre
oui c'est bin/rm qui s'execute mais alors pourquoi efface t il
le script qui le lance ?



Vraisemblablement, le shell passe $0 comme argument au shebang.

Arnaud.
dominix
Le #16790231
le pierre a écrit :
On 11 sep, 16:46, François Meyer
le pierre
On 11 sep, 16:20, François Meyer
le pierre
Bonjour, pourquoi ce script se detruit lui meme ?










...
Bin la première ligne :

#!/bin/rm

Si tu rends le script executable et le lance directement,
ce qui s'execute c'est "/bin/rm script", et pas "sh script".




...
oui c'est bin/rm qui s'execute mais alors pourquoi efface t il le
script qui le lance ?




parce que ce n'est pas un shell, c'est une commande qui efface ce qu'on
lui donne en argument.
Un shell lui lit le "contenu" du fichier en argument, pas rm !

--
dominix
le pierre
Le #16790571
On 11 sep, 18:56, wrote:
Le 11-09-2008, le pierre
>  oui c'est bin/rm qui s'execute mais alors pourquoi efface t il
>  le script qui le lance ?

Vraisemblablement, le shell passe $0 comme argument au shebang.

        Arnaud.



Effectivement c'est ce qu'on dirait.

Il en est de meme avec le script suivant :

#! /bin/ls
echo "je passe pas par la"
exit 0
Alain Montfranc
Le #16805861
le pierre a écrit
On 11 sep, 16:20, François Meyer
le pierre
Bonjour, pourquoi ce script se detruit lui meme ?



C'est une question ou une devinette ?

#!/bin/rm
# Script se supprimant lui-même.



#  Rien de plus ne semble se produire lorsque vous lancez ceci... si
on enlève
#+ le fait que le fichier disparait.
QUOIQUECESOITe



echo "Cette ligne ne s'affichera jamais."
exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas ici.



Sisi :-) :

[ ~]$ sh script
Cette ligne ne s'affichera jamais.
[ ~]$ echo $?
65
[ ~]$ cat script
#!/bin/rm
# Script se supprimant lui-même.

#  Rien de plus ne semble se produire lorsque vous lancez ceci... si on
#  enlève
#+ le fait que le fichier disparait.

QUOIQUECESOITe

echo "Cette ligne ne s'affichera jamais."

exit $QUOIQUECESOIT  # Importe peu. Le script ne se terminera pas ici.
[ ~]$

--
François Meyer



C'est une question, j'ai trouvé ca dans une doc , mais je ne comprends
pas pourquoi ?



c'est /bin/rm qui execute le script !
Publicité
Poster une réponse
Anonyme