Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question sha-bang

9 réponses
Avatar
le pierre
Bonjour, pourquoi ce script se detruit lui meme ?



#!/bin/rm
# Script se supprimant lui-m=EAme.

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

QUOIQUECESOIT=3D65

echo "Cette ligne ne s'affichera jamais."

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


merci

9 réponses

Avatar
François Meyer
le pierre wrote:
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
Avatar
le pierre
On 11 sep, 16:20, François Meyer wrote:
le pierre wrote:
> 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 ?
Avatar
le pierre
On 11 sep, 16:26, le pierre wrote:
On 11 sep, 16:20, François Meyer wrote:



> le pierre wrote:
> > 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
Avatar
François Meyer
le pierre wrote:
On 11 sep, 16:20, François Meyer wrote:
le pierre wrote:
> 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
Avatar
le pierre
On 11 sep, 16:46, François Meyer wrote:
le pierre wrote:
> On 11 sep, 16:20, François Meyer wrote:
>> le pierre wrote:
>> > 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 ?
Avatar
asl
Le 11-09-2008, le pierre a écrit :
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.
Avatar
dominix
le pierre a écrit :
On 11 sep, 16:46, François Meyer wrote:
le pierre wrote:
On 11 sep, 16:20, François Meyer wrote:
le pierre wrote:
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
Avatar
le pierre
On 11 sep, 18:56, wrote:
Le 11-09-2008, le pierre a écrit :

>  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
Avatar
Alain Montfranc
le pierre a écrit
On 11 sep, 16:20, François Meyer wrote:
le pierre wrote:
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 !